std :: accumulate()函数以及C ++ STL中的示例

C ++ STL支持多种功能和模板,以不同方式解决问题。

C ++ STL std::accumulate()函数

std::accumulate()函数用于累积[first,last]范围内的所有值,包括所有变量initial_sum。

累积功能的默认操作是将所有元素相加,但是可以执行不同的操作。

accumulate()函数语法:

    accumulate(start, end, initial_sum);

这里,

  • start:是迭代器的初始位置

  • end:是迭代器的最后一个位置。

注意:还可以在累加函数中传递一个附加参数,该参数指定要执行的操作的类型。

accumulate()具有附加参数的函数语法:

    accumulate(start, end, initial_sum, func);

在这里,func是要执行的附加操作。

C ++程序演示std::accumulate()函数的示例

#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