您的位置:首页 > 编程语言 > C语言/C++

C++的fill函数和memset函数

2016-01-07 16:46 691 查看
我不生产自己不熟悉的内容,我只是陌生内容的搬运工!向原作致敬

fill 的头文件是<iostream> 命名空间是std;

示范代码:

Cpp代码


#include<iostream>

using namespace std;

int main()

{

char s[100];

fill(s,s+100,'a');

for(int i=0;i<100;i++)

cout<<s[i];

cout<<endl;

system("pause");

return 0;

}

它的原理是把那一块单元赋成指定的值,与memset不同,

memset是按字节填充的例如:

这个例子可以很好的区别memset和fill:

Cpp代码


#include<iostream>

using namespace std;

int main()

{

int d[100];

fill(d,d+100,1);

for(int i=0;i<100;i++)

cout<<d[i]<<" ";

cout<<endl;

memset(d,1,100*sizeof(int));

for(int i=0;i<100;i++)

cout<<d[i]<<" ";

cout<<endl;

system("pause");

return 0;

}

运行结果如下:

Cpp代码


1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009 16843009

16843009

所以不难看出memset int 单元为1 时相当于

(1<<24)+(1<<16)+(1<<8)+1 = 16843009;

注意:<< 优先级低于+。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: