全文參考自 柳婼 的部落格按照位元組填充某字元
在標頭檔案裡面
按照單元賦值,將乙個區間的元素都賦同乙個值
在標頭檔案裡面
因為memset函式按照位元組填充,所以一般memset只能用來填充char型陣列,(因為只有char型佔乙個位元組)如果填充int型陣列,除了0和-1,其他的不能。因為只有00000000 = 0,-1同理,如果我們把每一位都填充「1」,會導致變成填充入「11111111」
而fill函式可以賦值任何,而且使用方法特別簡便:
例如int陣列:fill(arr, arr + n, 要填入的內容);
#include #includeusing
namespace
std;
intmain()
#include #include#include
using
namespace
std;
intmain() ;
fill(v.begin(), v.end(), -1
);
return0;
}
#include #includeusing
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 ...