c++ 如何批量初始化数组 fill和fill_n函数的应用
来源:互联网 发布:mac os镜像 编辑:程序博客网 时间:2024/05/16 00:49
一、 fill和fill_n函数的应用:
fill函数的作用是:将一个区间的元素都赋予val值。函数参数:fill(first,last,val);//first为容器的首迭代器,last为容器的尾迭代器,
替换元素的区间为[first,last),val为将要替换的值。
eg:vector <int> V;
fill(V.begin(),V.end(),val);
二、fill_n函数的作用是:
给你一个起始点,然后再给你一个数值count和val。把从起始点开始依次赋予 count个元素val的值。
注意: 不能在没有元素的空容器上调用fill_n函数。
例题:给你n个数,然后输入一些操作:start,count,paint。表示从start开始连续填充count个数字,paint为填充的数值。
#include <iostream>#include <algorithm>#include <vector>using namespace std;void print(int &elem){cout<<elem<<" ";}int main(){ vector <int> V; int n,start,count,paint; cin>>n; V.resize(n); while(cin>>start>>count>>paint) { fill_n(V.begin()+start-1,count,paint); for_each(V.begin(),V.end(),print); cout<<endl; } return 0;}
其他的一些实例:
vector<int> myvector (8,10); // myvector: 10 10 10 10 10 10 10 10fill_n (myvector.begin(),4,20); // myvector: 20 20 20 20 10 10 10 10
fill_n (myvector.begin()+3,3,33); // myvector: 20 20 20 33 33 33 10 10
三、关于memset()函数:
这个 函数是按字节覆盖,批量初始化内存空间,下面我们来看一个例子:
//注意移位运算的优先级小于 + unsigned int maxn=(1<<31)-1-(1<<7)-(1<<15)-(1<<23); int c[2]; memset(c,0x7f,sizeof(c)); printf("%0x\n",maxn); //7f7f7f printf("%0x\n",c[0]);//7f7f7f
结果都是 :0x7f7f7f由此说明memset的操作方式。
我们也可以根据该特性:来定义一个无穷大:
有符号整形的最大值:
max_int= 2147483647,也就是:(1<<31)-1
而0x7f7f7f=2139062143
eg:因此我们可以这样给数组初始化无穷大:memset(array,0x7f,sizeof(array));
- c++ 如何批量初始化数组 fill和fill_n函数的应用
- fill和fill_n函数的应用
- c++ fill和fill_n函数的应用
- C++学习 fill和fill_n和for_each()函数的应用
- fill和fill_n函数的应用 / fill_n与generate_n的区别
- 【C++】fill函数,fill与memset与fill_n函数的区别
- 【C++】别再用memset初始化int数组了,用fill或者fill_n靠谱多了
- C++ fill()和fill_n()函数用法
- C++ fill()和fill_n()函数用法
- C++ fill和fill_n函数用法介绍和比较
- C++ fill() 、 fill_n & memset函数
- C++中fill()、fill_n()与memset()函数的区别
- STL 之fill和fill_n
- STL 之fill和fill_n
- memset 函数, fill函数的区别及应用, fill函数给多维数组赋值。
- fill,fill_n,generate,generate_n
- C++ fill,fill_n
- c++ 如何批量初始化数组
- 对象和类
- 移动互联网银行
- hdu 1539 Shredding Company
- poj 2777 Count Color(线段树区区+染色问题)
- 【ACM】Play the Dice-数学概率
- c++ 如何批量初始化数组 fill和fill_n函数的应用
- 杭电--1258 深度搜索(sum it up)
- activeMQ消费消息时网络流量异常大的问题
- yii使用记录
- Yii Framework 开发教程(4) Hangman 猜单词游戏实例
- 是什么造就了伟大的程序员?
- 视频编码
- 黑马程序员_关于sql server 2008 “不允许保存更改...” 的解决办法
- Netduino开篇