STL::accumulate() 介绍 + system("pause")

accumulate : 计算给定区间中值的累加和。

Neal:

  1. accumulate() 可以传入指针,也可传入 iterator.
  2. 需要指定初值。
  3. 默认是计算和,也可以自己指定函数,就像我在代码里加的那样。

Code:

// Vector_Learning.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" //#include <vector> #include <list> #include <iostream> //#include <algorithm> #include <numeric> //#include <assert.h> //#include <map> #include <string> using namespace std; struct FunctionObj { int operator()(int i, int j) { return i*j; } }; int _tmain(int argc, _TCHAR* argv[]) { int ia[] = {1, 2, 3, 4}; std::list<int> ilist(ia, ia + 4); int ia_result = accumulate(&ia[0], &ia[4], 0); int ia_result_2 = accumulate(ia, ia+4, 0); int ilist_result = accumulate(ilist.begin(), ilist.end(), 0, std::plus<int>()); int ilist_result_2 = accumulate(ilist.begin(), ilist.end(), 0); int ilist_result_3 = accumulate(ilist.begin(), ilist.end(), 1, FunctionObj()); cout<<ia_result<<endl; cout << ia_result_2 << endl; cout<<ilist_result<<endl; cout << ilist_result_2 << endl; cout << ilist_result_3 << endl; system("pause"); return 0; }

 

output:

10 10 10 10 24 请按任意键继续. . . 请按任意键继续. . .

 

 

补充: system("pause") 让运行的程序暂停,所以上文的output 没错的哦。

你可能感兴趣的:(vector,System,output)