accumulate

来源:互联网 发布:新网互联域名过户 编辑:程序博客网 时间:2024/05/02 20:16
 
// accumulate.cpp -- 2011-10-05-15.56#include "stdafx.h"#include <iostream>#include <numeric>#include <vector>#include <functional>using std ::vector ;using std ::minus ;template<class T>class Print{public:void operator () (const T & t) const{std ::cout << t << " " ;}} ;int _tmain(int argc, _TCHAR* argv[]){int arr1[] = {1, 2, 3, 4, 5, 6, 7, 8 ,9} ;vector<int> vec1(arr1, arr1 + sizeof arr1 / sizeof (int)) ;//accumulate (beg, end, init) ;//操作前:[beg,end)标示输入序列.init是第一个参与运算的值.//操作后:计算init依次加输入序列中的所有元素所得的值.//返回值:返回计算所得的值.//备注:init是第一个参与运算的元素.init的类型决定返回类型.double sum = accumulate(vec1.begin(), vec1.end(), 0.1) ;std ::cout << sum << std ::endl ;//accumulate (beg, end, init, minus<int> ()) ;//操作前:[beg,end)标示输入序列.init是第一个参与运算的值.minus<int> ()是二元函数对象.//操作后:计算init依次减输入序列中的所有元素所得的值.//返回值:返回计算所得的值.//备注:init是第一个参与运算的元素.init的类型决定返回类型.sum = accumulate(vec1.begin(), vec1.end(), 100, minus<int> ()) ;std ::cout << sum << std ::endl ;std ::cin.get() ;return 0 ;}