C++ accumulate()的使用

accumulate有两种使用方法一种是累加模式,另外一种就是自定义类型处理。
第一种方法

C++ accumulate()的使用_第1张图片

第二种方法
C++ accumulate()的使用_第2张图片

使用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;
}

输出结果
C++ accumulate()的使用_第3张图片

方法二:自定义类型处理

#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;
}

输出结果

C++ accumulate()的使用_第4张图片

你可能感兴趣的:(C++ accumulate()的使用)