C++ std::accumulate 从给定初值起,把区间里每个元素用 +(或自定义运算)叠上去。声明于 <numeric>。
原型
T accumulate(InputIt first, InputIt last, T init);参数
first、last:半开区间。init:初值,其类型决定结果类型。
返回值
累加后的值。
示例
#include <iostream>
#include <numeric>
#include <vector>
int main() {
std::vector<int> v{1, 2, 3};
std::cout << std::accumulate(v.begin(), v.end(), 0) << "\n";
return 0;
}输出:
6
注意事项
空区间结果就是初值。需要乘积时可传入自定义二元运算;整数连乘注意溢出。
下一页介绍iota:按递增填写。