头文件#include<numeric>
当以迭代器first和last及值init作为参数调用时
accumulate(first,last, init);将把init 和从 first 到last 指向的值进行累加,并返回累加得到的和,但不包括last指向的值。
1.累加
double y[5] = {2.1,3.123,5.3,7.0,11.0};
// accumulate 对浮点型数据相加。
vector<double>vectorl1(&y[0],&y[5]);
double sum2 = accumulate(vectorl1.begin(),vectorl1.end(),0.0);
cout<<"sum2 = "<<sum2<<endl;
2.利用multiplies和accumulate来计算连乘:
#include<iostream>
#include<vector>
#include<numeric>
#include<functional>
using namespace std;
int main()
{
int x[5] = {2, 3, 5, 7, 11};
vector<int>vectorl(&x[0], &x[5]);
int product = accumulate(vectorl.begin(), vectorl.end(), 1,multiplies<int>());
cout<<"product = "<<product<<endl;
return 0;
}
multiplies<int>()是int类实例化multiplies模板类,accumulate函数里传multiplies类地址。