參考:傳送門
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...