fill函数,fill与memset函数的区别

memset函数

按照字节填充某字符
在头文件<cstring>里面
fill函数

按照单元赋值,将一个区间的元素都赋同一个值
在头文件<algorithm>里面
因为memset函数按照字节填充,所以一般memset只能用来填充char型数组,(因为只有char型占一个字节)如果填充int型数组,除了0和-1,其他的不能。因为只有00000000 = 0,-1同理,如果我们把每一位都填充“1”,会导致变成填充入“11111111”

例如

#include <bits/stdc++.h>
using namespace std; 
int main()
{
    int a[10];
    memset(a, 0, sizeof(a));
    for(int i = 0; i < 10; i++)
        printf("%d\n", a[i]);
    return 0;
}

而fill函数可以赋值任何,而且使用方法特别简便:

例如int数组:fill(arr, arr + n, 要填入的内容);

#include <bits/stdc++.h>
using namespace std; 
int main()
{
    int a[10];
    fill(a, a + 10, 13);
    for(int i = 0; i < 10; i++)
        printf("%d\n", a[i]);
    return 0;
}


发布了67 篇原创文章 · 获赞 22 · 访问量 7151

猜你喜欢

转载自blog.csdn.net/weixin_43906799/article/details/104875239