C++ 标准库 - <numeric>

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:按递增填写。