STL中常用函数

accumulate

主要就两点内容,

  • 可以用来直接计算数组或者容器中C++内置数据类型,默认加逻辑,但是可以自行指定
  • 可以用来计算自定义的数据类型
#include <numeric>  //包含的头文件
1 数组或容器的使用
1.1数组的累加和
int myfunction (int x, int y) {return x+2*y;} // 自定义的加逻辑
int init = 100; // 累加的初始值
int arr[]={10,20,30,40,50};  // 要进行累加的数组
int sum = accumulate(arr , arr+3 , init); // 在初始值的基础上进行范围求和
int sum = accumulate(arr , arr+3 , init, myfunction); // 在初始值的基础上进行范围自定义加逻辑求和

1.2容器类型同样适用
vector<int> testArray = { 1, 2, 3, 4 };
int sumT = accumulate(testArray.begin(), testArray.end(), 0);

1.3字符串拼接
vector<char> testChr = { 'a', 'b', 'c' };
string strSum = accumulate(testChr.begin(), testChr.end(), (string)" ");	\\sunT = "abc"

2 自定义数据类型的使用
#include <vector>
#include <string>
using namespace std;
 
struct Grade
{
	string name;
	int grade;
};  // 自行写一个结构体
 
int main()
{
	Grade subject[3] = {
		{ "English", 80 },
		{ "Biology", 70 },
		{ "History", 90 }
	};  // 添加数据成员
 
	int sum = accumulate(subject, subject + 3, 0, [](int a, Grade b){return a + b.grade; });  // 在初值为0的基础上统计成绩
	cout << sum << endl;
 
	system("pause");
	return 0;
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值