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