C++ STL(十六):常用算术生成算法(accumulate、fill)


0 常用算术生成算法简介【accumulate、fill】

算法简介
accumulate:计算容器指定区间内元素的累和
fill:向容器填充指定元素

注:算术生成算法属于小型算法,使用时需包含头文件#include <numeric>


1 accumulate【计算容器元素的累和】

作用:计算容器指定区间内元素的累和

注:使用accumulate算法时,需包含头文件include <numeric>

函数原型
accumulate(iterator begin, iterator end, value);

参数解释
begin:迭代器起始位置;
end:迭代器结束位置;
value起始累加值

示例

#include <iostream>
using namespace std;

#include <vector>
#include <numeric>		//使用accumulate算法
#include <algorithm>	//使用for_each算法

int main() {
	vector<int> v;

	v.push_back(9);
	v.push_back(1);
	v.push_back(7);
	v.push_back(6);
	v.push_back(3);

	//计算元素累和(起始累加值设置为0)
	int sum = accumulate(v.begin(), v.end(), 0);
	cout << "sum = " << sum << endl;	//26

	return 0;
}

2 fill【向容器填充指定元素】

作用:向容器填充指定元素

注:使用fill算法时,需包含头文件include <numeric>

函数原型
fill(iterator begin, iterator end, value);

参数解释
begin:迭代器起始位置;
end:迭代器结束位置;
value填充的指定值

示例

#include <iostream>
using namespace std;

#include <vector>
#include <numeric>		//使用fill算法
#include <algorithm>	//使用for_each算法

int main() {
	vector<int> v;
	v.resize(5);	//使用默认值0填充
	for_each(v.begin(), v.end(), [](int val) {cout << val << " "; });	//0 0 0 0 0

	//fill():向容器中填充指定元素
	fill(v.begin(), v.end(), 6);
	for_each(v.begin(), v.end(), [](int val) {cout << val << " "; });	//6 6 6 6 6
	
	return 0;
}
已标记关键词 清除标记
相关推荐
<p> <b><span style="background-color:#FFE500;">【超实用课程内容】</span></b> </p> <p> <br /> </p> <p> <br /> </p> <p> 本课程内容包含讲解<span>解读Nginx的基础知识,</span><span>解读Nginx的核心知识、带领学员进行</span>高并发环境下的Nginx性能优化实战,让学生能够快速将所学融合到企业应用中。 </p> <p> <br /> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><br /> </b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><span style="background-color:#FFE500;">【课程如何观看?】</span></b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> PC端:<a href="https://edu.csdn.net/course/detail/26277"><span id="__kindeditor_bookmark_start_21__"></span></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 移动端:CSDN 学院APP(注意不是CSDN APP哦) </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 本课程为录播课,课程永久有效观看时长,大家可以抓紧时间学习后一起讨论哦~ </p> <p style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <br /> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <strong><span style="background-color:#FFE500;">【学员专享增值服务】</span></strong> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b>源码开放</b> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 下载方式:电脑登录<a href="https://edu.csdn.net/course/detail/26277"></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a>,播放页面右侧点击课件进行资料打包下载 </p> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p>
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页