cb41a_c++_STL_算法_填充新值fill_generate
cb41a_c++_STL_算法_填充新值fill_generate
fill(b,e,v)
fill_n(b,n,v),填充n个v
generate(b,e,p)
generate_n(b,n,p)
generate_n(back_inserter(ilist), 5, rand);//插入5个随机数,rand是个随机数函数
STL算法-修改性算法
for_each()
copy()
copy_backward()
transform()
merge()
swap_ranges()
fill()
fill_n()
generate()
generate_n()
replace()
replace_if()
replace_copy()
replace_copy_if()
/*cb41a_c++_STL_算法_填充新值fill_generate
fill(b,e,v)
fill_n(b,n,v),填充n个v
generate(b,e,p)
generate_n(b,n,p) generate_n(back_inserter(ilist), 5, rand);//插入5个随机数,rand是个随机数函数 STL算法-修改性算法
for_each()
copy()
copy_backward()
transform()
merge()
swap_ranges()
fill()
fill_n() generate()
generate_n()
replace()
replace_if()
replace_copy()
replace_copy_if()
*/ #include <iostream>
#include <algorithm>
#include <vector>
#include <list>
#include <string>
#include <iterator> using namespace std; int main()
{
list<string> slist;
slist.push_back("hello");
//slist.push_back("hi");
slist.push_back("helaaalo");
slist.push_back("morning");
fill(slist.begin(), slist.end(), "hao"); for (list<string>::iterator iter = slist.begin(); iter != slist.end(); ++iter)
cout << *iter << ' ';
cout << endl; list<string> slist2;
cout << "slist2里面没有数据,就需要back_inserter来插入,否则报错" << endl;
fill_n(back_inserter(slist2), , "hello");
for (list<string>::iterator iter = slist2.begin(); iter != slist2.end(); ++iter)
cout << *iter << ' ';
cout << endl; cout << "直接填充到cout输出流里面" << endl;
fill_n(ostream_iterator<float>(cout, " "), , 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() - , "hi");//填充(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(); cout << "除了前后一个。中间填充hmmm" << endl; fill(++pos1, --pos2, "hmmm"); for (list<string>::iterator iter = slist2.begin(); iter != slist2.end(); ++iter)
cout << *iter << ' ';
cout << endl; cout << "使用generate填充5个随机数" << endl; list<int> ilist;
generate_n(back_inserter(ilist), , rand);//插入5个随机数
for (list<int>::iterator iter = ilist.begin(); iter != ilist.end(); ++iter)
cout << *iter << ' ';
cout << endl; cout << "使用generate填充随机数" << endl;
generate(ilist.begin(), ilist.end(), rand);
for (list<int>::iterator iter = ilist.begin(); iter != ilist.end(); ++iter)
cout << *iter << ' ';
cout << endl; return ;
}
cb41a_c++_STL_算法_填充新值fill_generate的更多相关文章
- STL_算法_填充新值(fill、fill_n、generate、generate_n)
C++ Primer 学习中... 简单记录下我的学习过程 (代码为主) 全部容器适用 fill(b,e,v) //[b,e) 填充成v fill_n(b,n,v) ...
- cb43a_c++_STL_算法_删除_(1)remove_remove_if
cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if() 注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没 ...
- cb50a_c++_STL_算法_局部排序partial_sort
cb50a_c++_STL_算法_局部排序partial_sort partial_sort(b,se,e)排序一部分,begin,source end,endcout << " ...
- cb47a_c++_STL_算法_排列组合next_prev_permutation
cb47a_c++_STL_算法_排列组合next_prev_permutation 使用前必须先排序.必须是 1,2,3或者3,2,1.否者结果不准确.如果, 1,2,4,6.这样数据不会准确nex ...
- cb46a_c++_STL_算法_逆转和旋转reverse_rotate函数advance
cb46a_c++_STL_算法_逆转和旋转reverse_rotateSTL算法--变序性算法reverse() 逆转reverse_copy()一边复制一般逆转rotate()旋转,某个位置开始前 ...
- cb42a_c++_STL_算法_替换_replace
cb42a_c++_STL_算法_替换_replacereplace(b,e,ov,nv),ov,old value, nv,new valuereplace_if(b,e,p,v) 根据p的条件,全 ...
- cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare
*cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare 区间:容器中的全部数据或者部分数据,都叫做区间 equal(b,e,b2), ...
- cb34a_c++_STL_算法_查找算法_(7)_lower_bound
cb34a_c++_STL_算法_查找算法_(7)_lower_bound//针对已序区间的查找算法,如set,multiset关联容器-自动排序lower_bound()--第一个可能的位置uppe ...
- cb32a_c++_STL_算法_查找算法_(5)adjacent_find
cb32a_c++_STL_算法_查找算法_(5)adjacent_findadjacent_find(b,e),b,begin(),e,end()adjacent_find(b,e,p),p-par ...
随机推荐
- mysql 赋权语句
grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
- 面向对象案例 - 学生信息管理系统V1.0
学生管理系统项目[所有知识点整合] 1. 学生管理系统项目 尝试完成以下功能 实体类: 学生类: id, 姓名,年龄,性别,成绩 需要使用数组保存学生信息 Student[] allStu 需要完成的 ...
- PowerDesigner使用教程(二)
在PowerDesigner使用教程(一)中已经介绍了基本用法,下面介绍一些使用技巧. 1. 生成sql脚本 Database→Generate Database 选择要输出的文件路径,即文件存储路 ...
- Linux 任务后台运行软件【即:终端复用器】之---screen
会话: 命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称"窗口"),在里面输入命令. 用户与计算机的这种临时的交互,称为一次"会话&qu ...
- 抽象类(abstract class)与抽象方法
package cm.aff.abst; /* abstract:抽象的,,可以修饰类,方法 1.修饰类: 抽象类: ①不能被实例化 ②有构造器的 ③凡是类都有构造器 ④抽象方法所修饰的类一定是抽象类 ...
- 在线编写复杂的数学公式--EdrawMath
网址: EdrawMath , 非常好用
- C#线程 入门
Threading in C# 第一部分: 入门 介绍和概念 C#支持通过多线程并行执行代码.线程是一个独立的执行路径,能够与其他线程同时运行.C#客户端程序(控制台,WPF或Windows窗体) ...
- vnc远程工具的使用,Windows系统下VNC远程工具的使用教程
服务器管理工具可以作为VNC的客户端进行VNC的相关操作,是一款功能强大的VNC客户端软件!同时,它也可以作为FTP的客户端,来进行FTP的相关操作!它能够连接Windows和Linux系统下的服务器 ...
- pycharm关联git
一.先创建SSH Key 给github设置SSH-KEY !!! 这一步算是连接GitHub的最基本的一步了,git是分布式的代码管理工具,远程的代码管理是基于ssh的,所以得先配好SSH key. ...
- Java 第十一届 蓝桥杯 省模拟赛 字母重新排列
字母重新排列 题目 问题描述 将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO.AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义. 请问,总共能排列如多少个 ...