c语言fill函数,【c++/c】fill和memset函数的区别

在ACM程序设计中我们常需要对数组进行一系列初始化赋值的操作,全部清空或者全部设置为最大值(一个你想指定的值),其中fill函数和memset函数最为常见,以下给出两个函数的常用方法和对比

memset包含在头文件cstring/string.h当中,分别隶属于c++/c的两个头文件

因为memset赋值时按照字节填充,所以更适合给char类型的数组赋值(一维/二维),因为在c/c++中char占用1一个字节(8位),而int占用2个字节,如果要使用memset给int赋值只适用于0,-1,但还有一种巧妙的方法,如果要将一个数组(一维/二维)全部赋值一个很大的值也可以通过将这个最大值M设置为0x3f3f3f3f(这是一个很巧妙的数字具体有兴趣的童鞋可以去查一下原因哦)

memset使用代码:

#include

#include

#include

using namespace std;

const int M=0x3f3f3f3f;

int main(){

char a[20][20];

char b[20];

int c[20][20];

int d[20];

for(int i=1;i<=3;i++){

a[i][i]='a';

b[i]='a';

}

memset(a,'b',sizeof(a));

memset(b,'b',sizeof(b));

memset(c,M,sizeof(c));

memset(d,M,sizeof(d));

cout<

cout<

cout<

cout<

return 0;

}

测试结果显示成功调用了memset函数对char数组和int数组进行赋值:

09d2c4dc9814

memset.png

fill包含在头文件algorithm当中,可以给数组赋值任意数

fill(a,a+n,你想要赋值的数);

fill(a[0],a[0]+n*n,你想要赋值的数);

代码如下:

#include

#include

using namespace std;

int main(){

int a[20];

fill(a,a+20,20);

cout<

int b[20][20];

fill(b[0],b[0]+20*20,10);

cout<

return 0;

}

fill测试结果如下:

09d2c4dc9814

fill.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值