C++中的accumulate

来源:互联网 发布:魔豆精灵网络加速器 编辑:程序博客网 时间:2024/06/13 23:02
// accumulate example#include <iostream>     // std::cout#include <functional>   // std::minus#include <numeric>      // std::accumulateint myfunction (int x, int y) {return x+2*y;}struct myclass {    int operator()(int x, int y) {return x+3*y;}} myobject;int main () {  int init = 100;  int numbers[] = {10,20,30};  std::cout << "using default accumulate: ";  std::cout << std::accumulate(numbers,numbers+3,init);  std::cout << '\n';  std::cout << "using functional's minus: ";  std::cout << std::accumulate (numbers, numbers+3, init, std::minus<int>());  std::cout << '\n';  std::cout << "using custom function: ";  std::cout << std::accumulate (numbers, numbers+3, init, myfunction);  std::cout << '\n';  std::cout << "using custom object: ";  std::cout << std::accumulate (numbers, numbers+3, init, myobject);  std::cout << '\n';  return 0;}

需要#include <numeric>
std::accumulate(numbers,numbers+3,init); init 是求和的初始值
也可以自己定义计算的方法。

0 0