memset需要头文件:
#include<cstring>
fill需要头文件:
#include<algorithm>
using namespace std;
memset按照1字节为单位对内存进行填充,-1的每一位二进制位都是1,所以可以像0一样用memset进行初始化。通过memset可以快速地对高维数组等进行初始化,但是需要注意无法初始化成1之类的数值。—摘自《挑战程序设计竞赛》p53
例子:
#include<cstdio>
#include<cstring>
//#include<algorithm>
//using namespace std;
int main(){
int a[4]={5,3,7,2};
memset(a,0,sizeof(a));
//fill(a,a+5,520);
for(int i=0;i<4;i++)
printf("%d ",a[i]);
return 0;
}
输出:
0 0 0 0
fill()可以把数组或容器中的某一段区间赋为某个相同的值。和memset不同,这里的赋值可以是数组类型对应范围中的任意值。—摘自《算法笔记》
例子:
#include<cstdio>
//#include<cstring>
#include<algorithm>
using namespace std;
int main(){
int a[4]={5,3,7,2};
//memset(a,0,sizeof(a));
fill(a,a+5,520);
for(int i=0;i<4;i++)
printf("%d ",a[i]);
return 0;
}
输出:
520 520 520 520