/*copyright(c)2016.烟台大学计算机学院
* All rights reserved,
* 文件名称:text.Cpp
* 作者:刘涛
* 完成日期:2016年6月5日
* 版本号:vc++6.0
* 问题描述:阅读下面程序,并写出运行结果
*/
#include <functional>
#include <numeric>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
vector<int> v(5);
for (int i = 0; i < 5; i++)
v[i] = i + 1;
int sum = accumulate(v.begin(), v.end(), 0);
cout << "Sum of values == " << sum << endl;
int product = accumulate(v.begin(), v.end(), 1, multiplies<long>());
cout << "Product of values == " << product << endl;
return 0;
}
运行结果:
知识点总结:
accumulate是求和算法,头两个形参指定要累加的元素范围,第三个形参则是累加的初值。所以结果为1加到5的值
第二个第三个形参是accumulate算法返回累加的结果,其返回类型就是其第三个实参的类型。结果是从1乘到5的值。