C ++ STL支持多种功能和模板,以不同方式解决问题。
std::accumulate()函数用于累积[first,last]范围内的所有值,包括所有变量initial_sum。
累积功能的默认操作是将所有元素相加,但是可以执行不同的操作。
accumulate()函数语法:
accumulate(start, end, initial_sum);
这里,
start:是迭代器的初始位置
end:是迭代器的最后一个位置。
注意:还可以在累加函数中传递一个附加参数,该参数指定要执行的操作的类型。
accumulate()具有附加参数的函数语法:
accumulate(start, end, initial_sum, func);
在这里,func是要执行的附加操作。
#include <bits/stdc++.h>
#include <vector>
using namespace std;
int main(){
//向量的初始化
vector<int> vec{1,2,3,4,5,6,7,8,9};
//将初始总和设为0-
int sum = 0;
cout << "\n Initial value of sum = " << sum << endl;
//累加功能演示
//对向量的所有元素求和
sum = accumulate(vec.begin(), vec.end(), sum);
cout << " Value of sum after accumulate = " << sum << endl;
//将initial_sum的值更改为50-
sum = 50;
cout << "\n Initial value of sum = " << sum << endl;
//累加功能演示
//带有附加参数
//在这里,附加参数用于
//减去所有元素
//初始金额。附加参数可以是
//任何有效的功能或操作
sum = accumulate(vec.begin(), vec.end(), sum, minus<int>());
cout << " Value of sum after accumulate function with optional argument = " << sum << endl;
return 0;
}输出结果
Initial value of sum = 0 Value of sum after accumulate = 45 Initial value of sum = 50 Value of sum after accumulate function with optional argument = 5