1 .介绍用于计算特定范围内所有元素(包括连续部分和初始值)的和,还可以通过指定二进制操作计算特定范围内元素的结果。 头文件位于numeric上。
帐户元函数声明定义如下:
templateclass InputIterator,classtypetypeaccumulate (input iterator _ first,InputIterator _Last,Type _Val ); templateclass InputIterator,class Type,class fn2type accumulate (input iterator _ first,InputIterator _Last,Type _Val )
编写参数_First指定范围内的第一个迭代的值,或与操作选项结合使用。 InputIterator _Last指定范围内的最后一个迭代值,或与措施项结合使用。 _Val要计算的初始值。 _Binary_op应用于指定范围内的所有元素以及在上一次计算中生成的参数。 但是,看了说明可能很难理解,通过例子更具体地说明这个函数。
2 .应用实例# include vector # include numeric # include functional # includeiostreamusingnamespacestd; int main () { vector int v1,V2 ) 20; vector int :3360迭代器1、迭代器2; int i; for(I=1; i 21; I ) ) V1.push_back(I; } cout ‘的第一个向量v1的元素的值为:\n (); for(ITER1=V1.Begin ); 第1集!=v1.end (; Iter1) cout *Iter1); cout ‘ ).’ endl; //accumulate函数的第一个功能,总计int total; total=accumulate(V1.begin )、v1.end )、0 ); cout ‘整数的1到20之和为: ‘ total ‘.’ endl; //前n项之和的向量int j=0,构造partotal的for(ITER1=V1.Begin ) ) 1; 第1集!=v1.end () 1; iter1({partotal=accumulate ) V1.Begin )、ITER 1,0 ); v2 [ j ]=partotal; j; } cout ‘的前n项和分别为:\n (); for(ITER2=V2.Begin ); 第2章!=v2.end (; Iter2) cout *Iter2’; cout ‘ ).’ endl endl; //accumulate函数的第二个功能。 计算连积vector int v3,v4(10 )。 vector int :3360迭代器3,迭代器4; int s; for(s=1; s 11; s ) ) V3.push_back(s ); } cout ‘向量v3的初始值分别为:\n (); for(ITER3=V3.Begin ); 第3集!=v3.end (; Iter3) cout *Iter3’; cout ‘ ).’ endl; int ptotal; ptotal=accumulate(V3.begin (,v3.end ),1,multipliesint ); cout ‘整数1到10的连积为: ‘ ptotal ‘.’ endl; //前n项积的向量int k=0,构造ppartotal的for(ITER3=V3.Begin ) ) 1; 第3集!=v3.end () 1; Iter3() PPARtotal=accumulate(V3.Begin )、ITER 3,1、multipliesint ) ); v4 [ k ]=ppartotal; k; } cout ‘的前n项积分别为:\n (); for(ITER4=V4.Begin ); 第4集!=v4.end (; Iter4) cout *Iter4’; cout ‘ ).’ endl; }编译并运行,查看输出结果: