c 中memset和fill的區別

2021-10-02 11:23:25 字數 756 閱讀 3232

參考:傳送門

memset函式:

在#include中

按照位元組填充(適用0,-1)

fill函式:

在#incude中

按照單元賦值,將乙個區間的元素都賦同乙個值

說明:因為memset函式按照位元組填充,所以一般memset只能用來填充char型陣列,(因為只有char型佔乙個位元組)如果填充int型陣列,除了0-1,其他的不能。因為只有00000000 = 0-1同理,如果我們把每一位都填充「1」,會導致變成填充入「11111111

綜上:fill用起來更能滿足大部分題的要求

int陣列:

#include#include#includeusing namespace std;

int main()

對於vector同樣可以

#include#include#include#includeusing namespace std;

int main()

fill和memset的區別

最主要的區別是memset是按照位元組填充的。按照單元賦值,將乙個區間的元素都賦予val值。函式引數 fill vec.begin vec.end val val為將要替換的值。include fill vec.begin vec.end val 原來容器中每個元素被重置為val按照位元組填充某字元...

fill函式,fill與memset函式的區別

全文參考自 柳婼 的部落格 按照位元組填充某字元 在標頭檔案裡面 按照單元賦值,將乙個區間的元素都賦同乙個值 在標頭檔案裡面 因為memset函式按照位元組填充,所以一般memset只能用來填充char型陣列,因為只有char型佔乙個位元組 如果填充int型陣列,除了0和 1,其他的不能。因為只有0...

memset和fill的初始化問題

對於memset是按照1位元組為單位對記憶體進行填充。對於int型 可以對 1和0進行初始化 若對無窮大用memset初始化,必須是0x3f3f3f3f 不能是99999這樣的無窮大。且型別必須是int型,不能是別的型別。fill也能進行初始化,原型是 fill vector.begin vecto...