c++的numeric
时间: 2024-06-12 07:10:30 浏览: 11
C++标准库中的numeric头文件提供了一些数值算法,包括对容器中元素进行求和、内积、部分和、差异等操作。
其中常用的函数有:
- accumulate:对容器中的元素进行累加或累乘
- inner_product:计算两个容器的内积
- partial_sum:计算部分和
- adjacent_difference:计算相邻元素的差异
示例代码:
```c++
#include <iostream>
#include <numeric>
#include <vector>
int main() {
std::vector<int> v{1, 2, 3, 4, 5};
int sum = std::accumulate(v.begin(), v.end(), 0);
std::cout << "Sum: " << sum << std::endl;
std::vector<int> v1{1, 2, 3};
std::vector<int> v2{4, 5, 6};
int inner_product = std::inner_product(v1.begin(), v1.end(), v2.begin(), 0);
std::cout << "Inner product: " << inner_product << std::endl;
std::vector<int> v3{1, 2, 3, 4, 5};
std::vector<int> partial_sum(v3.size());
std::partial_sum(v3.begin(), v3.end(), partial_sum.begin());
for (auto i : partial_sum) {
std::cout << i << " ";
}
std::cout << std::endl;
std::vector<int> v4{1, 2, 4, 7, 11};
std::vector<int> adjacent_difference(v4.size()); std::adjacent_difference(v4.begin(), v4.end(), adjacent_difference.begin());
for (auto i : adjacent_difference) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果:
```
Sum: 15
Inner product: 32
1 3 6 10 15
1 1 2 3 4
```