accumulate : 计算给定区间中值的累加和。
Neal:
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 没错的哦。