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

2022-06-25 08:00:15 字數 866 閱讀 5995

全文參考自 柳婼 的部落格

按照位元組填充某字元

在標頭檔案裡面

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

在標頭檔案裡面

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

而fill函式可以賦值任何,而且使用方法特別簡便:

例如int陣列:fill(arr, arr + n, 要填入的內容);

#include #include 

using

namespace

std;

intmain()

#include #include 

#include

using

namespace

std;

intmain() ;

fill(v.begin(), v.end(), -1

);

return0;

}

#include #include 

using

namespace

std;

intmain()

類似如下用法:

fill(dis[0], dis[0]+maxn*maxn, inf);

因為dis[0]才是dis的首元素dis[0][0]的位址。

memset 函式與fill 函式的區別

1.memset 函式的格式為 memset 陣列名,值,陣列位元組總數 由於memset使用的是按位元組賦值,即對每個位元組賦相同的值,這樣對於乙個int型別的陣列,當memset的值賦為1時,實際上整個陣列的每乙個元素被賦的值是 2 0 2 8 2 16 2 24 因此建議memset的值一般取...

fill函式與memset函式的區別

fill函式的標頭檔案為 std memset函式的標頭檔案為 string.h c 中為 cstring 用法 fill vector.begin vector.end val 按照單元賦值,將乙個區間內的元素都賦予val值 例項 include using namespace std intma...

fill函式與程式設計無窮大

程式設計中無窮大的設定 很多人可能設為0x7fffffff,這個數的確是32 bit int的最大值,符號位為0,其他的都是1 但在很多情況下,0x7fffffff會出現錯誤,比如溢位,這樣兩個無窮大數相加會變成負數,還有如在做dijkstra求最短路時,當做鬆弛操作,判斷if d u w u v ...