accumulate源代码如下:
template <class _InputIterator, class _Tp, class _BinaryOperation>
_Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp __init,
_BinaryOperation __binary_op)
{
__STL_REQUIRES(_InputIterator, _InputIterator);
for ( ; __first != __last; ++__first)
__init = __binary_op(__init, *__first);
return __init;
}
这个函数就是把集合中的数据都积累起来,同时也要加上init,这是个初始值;
就是迭代!
#include<iostream> #include<numeric> #include<vector> using namespace std; struct M { int x1; int x2; int x3; }; int main () { M n[4] = {{12,24,36},{4,5,6},{71,18,95},{10,11,12}}; vector<int> vec; for ( int i = 0; i < 4; i++ ) { vec.push_back (n[i].x3); } int result = accumulate ( vec.begin (), vec.end (), 0 ); cout<<result<<endl; return 0; }这是网上的一个例子
#include<iostream> #include<numeric> #include<vector> using namespace std; struct M { int x1; int x2; int x3; }; int main () { M n[4] = {{12,24,36},{4,5,6},{71,18,95},{10,11,12}}; vector<int> vec; for ( int i = 0; i < 4; i++ ) { vec.push_back (n[i].x3); } int result = accumulate ( vec.begin (), vec.end (), 0 ); cout<<result<<endl; return 0; }
这是网上第2个例子
这两个例子基本说明了他的用法。
5901

被折叠的 条评论
为什么被折叠?



