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的更多相关文章

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

    C++ Primer 学习中... 简单记录下我的学习过程 (代码为主) 全部容器适用 fill(b,e,v)             //[b,e)   填充成v fill_n(b,n,v)     ...

  2. cb43a_c++_STL_算法_删除_(1)remove_remove_if

    cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if() 注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没 ...

  3. cb50a_c++_STL_算法_局部排序partial_sort

    cb50a_c++_STL_算法_局部排序partial_sort partial_sort(b,se,e)排序一部分,begin,source end,endcout << " ...

  4. cb47a_c++_STL_算法_排列组合next_prev_permutation

    cb47a_c++_STL_算法_排列组合next_prev_permutation 使用前必须先排序.必须是 1,2,3或者3,2,1.否者结果不准确.如果, 1,2,4,6.这样数据不会准确nex ...

  5. cb46a_c++_STL_算法_逆转和旋转reverse_rotate函数advance

    cb46a_c++_STL_算法_逆转和旋转reverse_rotateSTL算法--变序性算法reverse() 逆转reverse_copy()一边复制一般逆转rotate()旋转,某个位置开始前 ...

  6. cb42a_c++_STL_算法_替换_replace

    cb42a_c++_STL_算法_替换_replacereplace(b,e,ov,nv),ov,old value, nv,new valuereplace_if(b,e,p,v) 根据p的条件,全 ...

  7. cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare

    *cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare 区间:容器中的全部数据或者部分数据,都叫做区间 equal(b,e,b2), ...

  8. cb34a_c++_STL_算法_查找算法_(7)_lower_bound

    cb34a_c++_STL_算法_查找算法_(7)_lower_bound//针对已序区间的查找算法,如set,multiset关联容器-自动排序lower_bound()--第一个可能的位置uppe ...

  9. 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 ...

随机推荐

  1. 封装 private

    封装表现: 1.方法就是一个最基本封装体. 2.类其实也是一个封装体. 从以上两点得出结论,封装的好处: 1.提高了代码的复用性. 2.隐藏了实现细节,还要对外提供可以访问的方式.便于调用者的使用.这 ...

  2. winform 数据(双向)绑定 快速更新实体

    写点东西感觉特别累,也已经很久没写了. 最近在做一个winform类型的系统,其涉及到大量的表,有些表又包含大量的字段,所以当添加.更新实体时便会十分的繁琐,一方面:需要把界面上的字段绑定到对应的实体 ...

  3. vue 上拉刷新组件

    背景,项目中经常会出现需要上拉加载更多或者下拉刷新的需求,一直以来呢都是借用各种UI库来实现,但是不知道啥情况,最近在使用的时候,一直有问题,出不了效果,然人很恼火,于是只能自己动手来实现以下, 这次 ...

  4. 基于 abp vNext 和 .NET Core 开发博客项目 - 用AutoMapper搞定对象映射

    上一篇文章(https://www.cnblogs.com/meowv/p/12961014.html)集成了定时任务处理框架Hangfire,完成了一个简单的定时任务处理解决方案. 本篇紧接着来玩一 ...

  5. template标签介绍和使用

    template标签介绍和使用 1.介绍:template标签是html5新出来的标签,具有3个特点,(1)随意性:可以写在页面中的任何地方.(2)不可见性:它里面的元素都是不可见的.(3)页面也不会 ...

  6. Node.js躬行记(2)——文件系统和网络

    一.文件系统 fs模块可与文件系统进行交互,封装了常规的POSIX函数.POSIX(Portable Operating System Interface,可移植操作系统接口)是UNIX系统的一个设计 ...

  7. Vue3.0+ElementUI打包之后,为什么部分页面按钮图标找不到

    有的页面可以显示这个按钮,有的页面不可以,找了好久,看这都webpack路径问题,到但是我这个没有webpack,没有build文件夹,最后发现是因为没有绑定点击事件 加上这个之后就好了

  8. Java实现 LeetCode 796 旋转字符串 (水题)

    796. 旋转字符串 给定两个字符串, A 和 B. A 的旋转操作就是将 A 最左边的字符移动到最右边. 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' .如果在若干次旋转 ...

  9. Java实现 LeetCode 677 键值映射(字典树)

    677. 键值映射 实现一个 MapSum 类里的两个方法,insert 和 sum. 对于方法 insert,你将得到一对(字符串,整数)的键值对.字符串表示键,整数表示值.如果键已经存在,那么原来 ...

  10. Java实现LeetCode_0026_RemoveDuplicatesFromSortedArray

    package javaLeetCode.primary; public class RemoveDuplicatesFromSortedArray_26 { public static void m ...