转自c++ 如何批量初始化数组 fill和fill_n函数的应用
std::fill(a+2,a+10,0x3f3f3f3f);///从下标2到下标10 前闭后开 共8个 std::fill_n(a+2,10,0x3f3f3f3f);///从下标2 开始 填充10个 memset(a,0x7f7f7f7f,sizeof(a));
一、 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函数。
三、关于memset()函数:
这个 函数是按字节覆盖,批量初始化内存空间
max_int= 2147483647,也就是:(1<<31)-1
而0x7f7f7f=2139062143