C++ fill() fill_n() back_inserter 简析
来源:互联网 发布:移动硬盘排名知乎 编辑:程序博客网 时间:2024/05/01 01:09
fill 和fill_n函数是C++ Primer第十一章泛型算法部分内容,并把它们称为写入元素算法,也就是说这两个函数只能对输入范围内已存在的元素进行写入操作。如果试图对空容器进行fill_n操作,会导致严重的运行错误,所以在对元素进行写入操作时要检查目标的大小是否足以存储要写入的元素。
fill函数的作用是:将一个区间的元素都赋予val值。函数参数:fill(vec.begin(), vec.end(), val); val为将要替换的值。
# include <algorithm>fill(vec.begin(), vec.end(), val); //原来容器中每个元素被重置为valfill_n函数的作用是:参数包括 : 一个迭代器,一个计数器以及一个值。该函数从迭代器指向的元素开始,将指定数量的元素设置为给定的值。
注意: 不能在没有元素的空容器上调用fill_n函数,但是可以通过下面的方法改进。
fill_n(vec.begin, 10, val);
为了保证算法有足够的元素存储输出数据,我们使用“插入迭代器”(insert iterator),插入迭代器是可以给基础容器添加元素的迭代器。
使用 back_inserter 的程序需要包含头文件#include<iterator>,将上面的程序改写成:
#include <iterator>vector<int> vec; //定义一个空容器fill_n (back_inserter(vec), 10 val);
在这个程序中,fill_n() 函数每写入一个值,都会通过back_inserter生产的插入迭代器实现。效果相当于在vec上调用push_back,在vec末尾添加10个元素。
即可实现fill_n对空容器的操作喽~~~
- C++ fill() fill_n() back_inserter 简析
- C++ fill() fill_n() back_inserter 简析
- C++ 之 fill()、fill_n()、 back_inserter
- 泛型算法之——fill fill_n back_inserter copy replace replace_copy
- fill,fill_n,generate,generate_n
- C++ fill,fill_n
- 【C++】fill函数,fill与memset与fill_n函数的区别
- STL_Algorithm1: Fill, Fill_n, Generate, Generate_n
- STL 之fill和fill_n
- C++ fill() 、 fill_n & memset函数
- STL 之fill和fill_n
- 【C++】别再用memset初始化int数组了,用fill或者fill_n靠谱多了
- 泛型算法系列12:fill()&&fill_n()
- 变异算法之填充(fill, fill_n)
- C++ fill()和fill_n()函数用法
- fill和fill_n函数的应用
- c++ fill和fill_n函数的应用
- C++ fill()和fill_n()函数用法
- console.log---被我一直忽视的神器
- 《疯狂的程序员》四
- C++ 对象的内存布局
- Real-Time Transport Protocol (RTP) Parameters
- C++内存分配及变长数组的动态分配
- C++ fill() fill_n() back_inserter 简析
- 1
- Python 的 Socket 编程教程
- android天气预报widget----google开源天气API,SAX解析
- cnblogs文章记录
- C语言文件读写
- 《疯狂的程序员》五
- C++ equal_range() 函数
- java数组遍历——iterator和for方法