fill()、fill_n()与memset()函数的区别
-
fill
在头文件
<algorithm>
里。按照数组的始末位置以一个数组元素为单位赋值,将区间内的每一个元素都赋值为
val
。代码:fill(vector.begin(), vector.end(), val);
-
fill_n()
在头文件
<algorithm>
里。从当前起始点开始,将之后的
cnt
个元素赋值为val
。注意:不能在没有元素的空容器上调用
fill_n()
函数 - 代码:fill(vector.begin(), cnt, val);
-
memset()
在头文件
<cstring>
里。将已开辟的内存空间
arr
的前cnt
个字节的值设为值val
。 - 代码 : memset(a,inf,sizeof(a)); //a为数组首地址;也可是数组任意一位地址eg:a+3
- 可复制 0, -1 ,inf(最大值) // const int inf=0x3f3f3f3f
#include<iostream> #include<queue> #include<cstring> #include<vector> using namespace std; const int inf=0x3f3f3f3f; int main() { int a[10]={0}; memset(a+3,-1,sizeof(a)); for(int i=0;i<10;i++) printf("%d ",a[i]); return 0; }