accumulate有两种使用方法一种是累加模式,另外一种就是自定义类型处理。
第一种方法
第二种方法
使用accumulate必须要包含一个#include 的头文件
下面给上面两个方法举一个简单的例子
方法一:累加
#include<vector>
#include <numeric>
void Main()
{
//创建一个数组
int myattr[] = { 1,2,4,3,8,9,7,5,6,10 };
//将数组遍历到容器内部
vector<int> V(&myattr[0], &myattr[10]);
//使用accumulate()调用容器的值并相加。
int SUM = accumulate(V.begin(),V.end(),0);
cout << "全部总和为:" << SUM << endl;
}
输出结果
方法二:自定义类型处理
#include <numeric>
#include <iostream>
using namespace std;
struct Grade
{
string name;
int grade;
};
void main()
{
Grade sub[5] = {
{ "张三", 23 },
{ "李四", 19 },
{ "刘五", 18 },
{ "李六", 20 },
{ "王七", 16 }
};
//accumulate(开始,结束,初始值,自定义处理)
int sum = accumulate(sub, sub + 3, 0, [](int a, Grade b) {return a + b.grade; });
cout << sum << endl;
}
输出结果