标签:first 自定义 name code const int init 字符 cout
该函数定义于头文件
template< class InputIt, class T >
constexpr T accumulate( InputIt first, InputIt last, T init );
template< class InputIt, class T, class BinaryOperation >
constexpr T accumulate( InputIt first, InputIt last, T init, BinaryOperation op );
accumulate函数有三个参数,前两个参数指定元素范围,第三个是累加的初值。
比如现在要求a+b,可以这么来写:
int main()
{
vector<string> v;
int a,b;
cin >> a >> b;
v.push_back(a);v.push_back(b);
int sum = accumulate(v.begin(),v.end(),0);
cout << sum << endl;
}
该函数也可以用来进行字符串的拼接,下面代码的作用是拼接a字符串和b字符串。
int main()
{
vector<string> v;
string a,b;
cin >> a >> b;
v.push_back(a);v.push_back(b);
string sum = accumulate(v.begin(),v.end(),string(""));
cout << sum << endl;
}
我们将自定义的结构体Node的数值进行累加。
struct Node
{
string Name;
int score;
};
vector<Node> tr = {
{"zhangsan",100},
{"lisi",200},
{"wangwu",300}
};
int main()
{
int sum1 = accumulate(tr.begin(),tr.end(),0,[](int a,Node b){return a + b.score;});
cout << sum1 << endl;
}
标签:first 自定义 name code const int init 字符 cout
原文地址:https://www.cnblogs.com/Crystar/p/13307477.html