fill函式與memset函式的區別(c++)

hu_xiao_jiang發表於2020-10-04

fill函式:
將一個區間的元素都賦予某個值。
標頭檔案:<algorithm>
函式引數:fill(begin, end, value);
value為要填入的值

fill使用:

#include<iostream>
#include <algorithm>
using namespace std;
int main() {
    int num[5];
    fill(num, num + 5, 3);
    return 0;
}

memset函式:
按位元組填充某字元
標頭檔案:<cstring>
因為memset函式按照位元組填充,一般memset只能用來填充char型陣列,(因為只有char型佔一個位元組)如果填充int型陣列,除了0、-1和INF,其他的不能。因為只有00000000 = 0;-1同理,如果我們把每一位都填充“1”,會導致變成填充入“11111111”

memset使用:

#include <iostream>
#include <cstring>
using namespace std;
int main(){
    int a[10];
    memset(a, 0, sizeof(a));
    return 0;
}

另外,memset比fill快,如果填入0、-1、INF最好使用memset。

相關文章