/*copyright(c)2016.烟台大学计算机学院
* All rights reserved,
* 文件名称:text.Cpp
* 作者:舒文超
* 完成日期:2016年6月4日
* 版本号: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;
}
运行结果:
Sum of values == 15
Product of values == 120
解释:“accumulate(v.begin(), v.end(), 0)” 意思是在0的基础上从begin的位置一直加到end前面一个位置所有数的和。
“product = accumulate(v.begin(), v.end(), 1, multiplies<long>())” 意思是在1的基础上从begin的位置一直乘到end。