【C++】STL 算法 - 累加填充算法 ( 元素累加算法 - accumulate 函数 | 元素填充算法 - fill 函数 )

这篇具有很好参考价值的文章主要介绍了【C++】STL 算法 - 累加填充算法 ( 元素累加算法 - accumulate 函数 | 元素填充算法 - fill 函数 )。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。





一、元素累加算法 - accumulate 函数



1、函数原型分析


在 C++ 语言 的 标准模板库 ( STL , STL Standard Template Library ) 中 , 提供了 accumulate 元素累加算法函数 用于 将 一个容器中的元素 进行累加操作 ;


accumulate 元素累加函数 将 输入容器 的 [ 起始迭代器, 终止迭代器 ) 范围 内的 元素 在一个基础值 的 基础上 进行累加 , 得到一个累加值 ;

最终 accumulate 函数 返回最终累加后的值 ;


accumulate 元素累加算法 函数原型 如下 :

template <class InputIterator, class T>  
T accumulate(InputIterator first, InputIterator last, T init);  
  • 参数解析 :
    • InputIterator first 参数 : 输入容器 ( 被复制容器 ) 的 迭代器范围 的 起始迭代器 ( 包含该迭代器指向的元素 ) ;
    • InputIterator last 参数 : 输入容器 ( 被复制容器 ) 的 迭代器范围 的 终止迭代器 ( 不包含该迭代器指向的元素 ) ;
    • T init 参数 : 累加的初始值 , 该值与 容器中的元素类型一致 ;
  • 返回值解析 : T 类型 是 容器元素类型 , 返回的是最终的累加值 ;

代码示例 :

	// 输入容器
	vector<int> source{ 9, 5, 2, 7 };

	// 将容器中的值累加
	int acc = accumulate(source.begin(), source.end(), 0);

2、代码示例


代码示例 :

#include "iostream"
using namespace std;
#include <vector>
#include <algorithm>
#include "functional"

// accumulate 函数定义在这个头文件中 
#include <numeric>

int main() {

	// 输入容器
	vector<int> source{ 9, 5, 2, 7 };

	// 将容器中的值累加
	int acc = accumulate(source.begin(), source.end(), 0);

	// 遍历打印容器中元素内容
	for_each(source.begin(), source.end(), [](int a) {
		cout << a << " ";
		});
	cout << endl;

	cout << "acc = " << acc << endl;

	// 控制台暂停 , 按任意键继续向后执行
	system("pause");
	return 0;
};

执行结果 :

9 5 2 7
acc = 23
请按任意键继续. . .

【C++】STL 算法 - 累加填充算法 ( 元素累加算法 - accumulate 函数 | 元素填充算法 - fill 函数 ),C++,c++,算法,开发语言,stl,STL算法,accumulate,fill





二、元素填充算法 - fill 函数



1、函数原型分析


在 C++ 语言 的 标准模板库 ( STL , STL Standard Template Library ) 中 , 提供了 fill 元素填充算法函数 用于 将 一个容器中的 指定范围的元素 修改为指定值 ;


fill 元素填充函数 将 输入容器 的 [ 起始迭代器, 终止迭代器 ) 范围 内的 元素 修改为指定值 ;


fill 元素填充算法 函数原型 如下 :

template <class ForwardIterator, class T>  
void fill(ForwardIterator first, ForwardIterator last, const T& value);
  • 参数解析 :
    • ForwardIterator first 参数 : 输入容器 ( 被复制容器 ) 的 迭代器范围 的 起始迭代器 ( 包含该迭代器指向的元素 ) ;
    • ForwardIterator last 参数 : 输入容器 ( 被复制容器 ) 的 迭代器范围 的 终止迭代器 ( 不包含该迭代器指向的元素 ) ;
    • const T& value 参数 : 要求改的值
  • 返回值解析 : void 类型返回值 ;

代码示例 :

	// 输入容器
	vector<int> source{ 9, 5, 2, 7 };

	// 将容器中的值都填充为 888
	fill(source.begin(), source.end(), 888);

2、代码示例


代码示例 :

#include "iostream"
using namespace std;
#include <vector>
#include <algorithm>
#include "functional"

// accumulate 函数定义在这个头文件中 
#include <numeric>

int main() {

	// 输入容器
	vector<int> source{ 9, 5, 2, 7 };

	// 遍历打印容器中元素内容
	for_each(source.begin(), source.end(), [](int a) {
		cout << a << " ";
		});
	cout << endl;

	// 将容器中的值都填充为 888
	fill(source.begin(), source.end(), 888);

	// 遍历打印容器中元素内容
	for_each(source.begin(), source.end(), [](int a) {
		cout << a << " ";
		});
	cout << endl;


	// 控制台暂停 , 按任意键继续向后执行
	system("pause");
	return 0;
};

执行结果 :

9 5 2 7
888 888 888 888
请按任意键继续. . .

【C++】STL 算法 - 累加填充算法 ( 元素累加算法 - accumulate 函数 | 元素填充算法 - fill 函数 ),C++,c++,算法,开发语言,stl,STL算法,accumulate,fill文章来源地址https://www.toymoban.com/news/detail-813442.html

到了这里,关于【C++】STL 算法 - 累加填充算法 ( 元素累加算法 - accumulate 函数 | 元素填充算法 - fill 函数 )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包