STL_算法(21)_ STL_算法_填充新值

STL_算法_填充新值

fill(b, e, v)

fill(b, n, v)

generate(b, n, p)

generate_n(b, n, p)

#include<iostream>
#include<algorithm>
#include<vector>
#include<list>
//
#include<string>

using namespace std;

int main()
{
	list<string> slist;
	slist.push_back("hello");
	slist.push_back("hi");
	slist.push_back("good mornig");

	// fill   fill_n 算法只能填充固定值
	fill(slist.begin(), slist.end(), "hao");

	for (list<string>::iterator iter = slist.begin(); iter != slist.end(); iter++)
		cout << *iter << ' ';
	cout << endl;

	list<string> slist2;
	fill_n(back_inserter(slist2), 9, "hello");
	for (list<string>::iterator iter = slist2.begin(); iter != slist2.end(); iter++)
		cout << *iter << ' ';
	cout << endl;

	fill_n(ostream_iterator<float>(cout, " "), 10, 7.7);
	cout << endl;

	fill(slist2.begin(), slist2.end(), "again");

	for (list<string>::iterator iter = slist2.begin(); iter != slist2.end(); iter++)
		cout << *iter << ' ';
	cout << endl;

	fill_n(slist2.begin(), slist2.size() - 2, "hi");
	for (list<string>::iterator iter = slist2.begin(); iter != slist2.end(); iter++)
		cout << *iter << ' ';
	cout << endl;

	list<string>::iterator pos1, pos2;
	pos1 = slist2.begin();
	pos2 = slist2.end();

	fill(++pos1, --pos2, "hmmm");
	for (list<string>::iterator iter = slist2.begin(); iter != slist2.end(); iter++)
		cout << *iter << ' ';
	cout << endl;
	//
	system("pause");
	return 0;
}

#include<iostream>
#include<algorithm>
#include<vector>
#include<list>
//
#include<string>

using namespace std;

int main()
{
	list<string> slist;
	slist.push_back("hello");
	slist.push_back("hi");
	slist.push_back("good mornig");

	// fill   fill_n 算法只能填充固定值
	fill(slist.begin(), slist.end(), "hao");

	for (list<string>::iterator iter = slist.begin(); iter != slist.end(); iter++)
		cout << *iter << ' ';
	cout << endl;

	list<string> slist2;
	fill_n(back_inserter(slist2), 9, "hello");
	for (list<string>::iterator iter = slist2.begin(); iter != slist2.end(); iter++)
		cout << *iter << ' ';
	cout << endl;

	fill_n(ostream_iterator<float>(cout, " "), 10, 7.7);
	cout << endl;

	fill(slist2.begin(), slist2.end(), "again");

	for (list<string>::iterator iter = slist2.begin(); iter != slist2.end(); iter++)
		cout << *iter << ' ';
	cout << endl;

	fill_n(slist2.begin(), slist2.size() - 2, "hi");
	for (list<string>::iterator iter = slist2.begin(); iter != slist2.end(); iter++)
		cout << *iter << ' ';
	cout << endl;

	list<string>::iterator pos1, pos2;
	pos1 = slist2.begin();
	pos2 = slist2.end();

	fill(++pos1, --pos2, "hmmm");
	for (list<string>::iterator iter = slist2.begin(); iter != slist2.end(); iter++)
		cout << *iter << ' ';
	cout << endl;

	list<int> ilist;

	// back_inserter()  插入迭代器
	generate_n(back_inserter(ilist), 5, rand);
	for (list<int>::iterator iter = ilist.begin(); iter != ilist.end(); iter++)
		cout << *iter << ' ';
	cout << endl;

	generate(ilist.begin(), ilist.end(), rand);
	for (list<int>::iterator iter = ilist.begin(); iter != ilist.end(); iter++)
		cout << *iter << ' ';
	cout << endl;

	//
	system("pause");
	return 0;
}

时间: 2024-08-05 02:51:20

STL_算法(21)_ STL_算法_填充新值的相关文章

STL_算法_填充新值(fill、fill_n、generate、generate_n)

C++ Primer 学习中... 简单记录下我的学习过程 (代码为主) 全部容器适用 fill(b,e,v)             //[b,e)   填充成v fill_n(b,n,v)           //[b,b+n) 填充成v generate(b,e,p)         //[b,e)   依照p方法填充 generate_n(b,n,p)       //[b,b+n) 依照p方法填充 /**------http://blog.csdn.net/u010579068----

EXCEL跨表比较两列,并填充新值背景

Sub FillNewToYellow() Dim dic Dim oldArr(), updatedArr() On Error Resume Next If Worksheets("old") Is Nothing Then MsgBox "Missing old sheet" ElseIf Worksheets("updated") Is Nothing Then MsgBox "Missing updated sheet&quo

图形学_多边形扫描转换_边界标志算法

边界标志算法 1. 对多边形的每一条边进行扫描转换,即对多边形边界所经过的象素作一个边界标志. 2.填充 对每条与多边形相交的扫描线,按从左到右的顺序,逐个访问该扫描线上的象素. 取一个布尔变量inside来指示当前点的状态,若点在多边形内,则inside为真.若点在多边形外,则inside为假. Inside 的初始值为假,每当当前访问象素为被打上标志的点,就把inside取反.对未打标志的点,inside不变. 1 #include "easyx.h" 2 #include &qu

Breaseman算法绘制圆形|中点算法绘制圆形_程序片段

Breaseman算法绘制圆形|中点算法绘制圆形_程序片段 1. Breaseman算法绘制圆形程序 由于算法的特殊性,限制绘制第一象限部分,其他部分通过旋转绘制. 1 void CCGProjectWorkView::bresenHam_1P4Circle(int radium, const float lineColor[]) 2 { 3 int pointX, pointY, deltD, deltHD, deltDV, direction; 4 pointX = 0; 5 pointY

1149: 零起点学算法56——青年歌手大奖赛_评委会打分

1149: 零起点学算法56--青年歌手大奖赛_评委会打分 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 1116  Accepted: 755[Submit][Status][Web Board] Description 青年歌手大奖赛中,评委会给参赛选手打分.选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分. Input 青年歌手大奖赛中,评委会给参赛选手打分

Cocos2d-x游戏开发_战斗算法

我的战斗算法的核心代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 private void aHitb(HeroBean a,HeroBean b){         ///*自身状态(已经移到aHitBTeam那里)         //判断A能否出招或者受到伤害什么的

[算法竞赛入门]第二章_循环结构程序设计

第2章 循环结构程序设计 [学习内容相关章节] 2.1for循环 2.2循环结构程序设计 2.3文件操作 2.4小结与习题 [学习目标] (1)掌握for循环的使用方法: (2)掌握while循环的使用方法: (3)学会使用计算器和累加器: (4)学会用输出中间结果的方法调试: (5)学会用计时函数测试程序效率: (6)学会用重定向的方式读写文件: (7)学会fopen的方式读写文件: (8)了解算法竞赛对文件读写方式和命名的严格性: (9)记住变量在赋值之前的值是不确定的: (10)学会使用条

算法竞赛_入门经典_刘汝佳__(2)

1,有几位数字 #include<stdio.h> int main_2_1_digit(){ int n; while(scanf("%d",&n)){ int count = 0; if(n==0) count = 1; while(n){ count++; n/=10; } printf("%d\n",count); } return 0; } 2,三位数的三个数字 #include<stdio.h> int main_2_2_

过山车(二分图_匈牙利算法)

Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐.但是,每个女孩都有各自的想法,举个例子把,Rabbit只愿意和XHD或PQK做partner,Grass只愿意和linle或LL做partner,PrincessSnow愿意和水域浪子或伪酷儿做partner.考虑到经费问题,boss刘决定只让找到partner的人去坐过山车,其他的人,嘿