template<class InputIterator, class Type>
Type accumulate<InputIterator first, InputIterator last, Type init);
template<class InputIterator, class Type, class BinaryOperator>
Type accumulate(InputIterator first, InputIterator last, Type init, BinaryOperator op);
#include <numeric>
#include <list>
using namespace std;
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 ilist_result = accumulate(ilist.begin(), ilist.end(), 0, std::plus<int>());
cout<<ia_result<<endl;
cout<<ilist_result<<endl;
system("pause");
return 0;
}