C++ memset和fill方法总结


1.memset

memset是计算机中C/C++语言初始化函数。作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。

头文件:

#include<cstring>

使用方法:memset函数按字节对内存块进行初始化,所以不能用它将int数组初始化为0和-1之外的其他值

int q[100];

(1)赋值为-1

memset(q,-1,sizeof(q))

(2)赋值为0

memset(q,0,sizeof(q))

2.fill

当我们想对一个容器的值进行填充时,我们就可以使用fill()函数。

头文件:

#include<algorithm>

使用方法:fill(初始位置first,最终位置last,值) //填充范围为[first,last)

fill方法的应用场景
使用fill()函数填充普通一维数组
fill(q,q+3,5);//给q数组的q[0],q[1],q[2]赋值为5
使用fill()函数填充vector
vector<int> myvector (8); 
fill (myvector.begin(),myvector.begin()+4,5);   // myvector: 5 5 5 5 0 0 0 0
fill (myvector.begin()+3,myvector.end()-2,8);   // myvector: 5 5 5 8 8 8 0 0

因为vector不再是普通的数组了(即使它可以被视作是一个数组),所以我们不需要使用数组首地址的方式,因为vector已经给我们封装好了方法,其初始地址就是vector.begin(),末位地址就是vector.end()。其余同array

使用fill()函数填充二维数组
int G[6][4];
fill(G[0],G[0]+6*4,520);

3.二者区别点

  • memset主要对数组进行赋值,且对int型数组,只能赋值为0和-1
  • fill函数可以对数组或其他容器,进行赋值,值可以任意
  • fill和memset都作用于int型数组上时,fill方法速度较慢

4.参考资料

参考文章1
参考文章2
参考文章3

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值