fill函式與memset函式的區別

2021-10-04 22:14:03 字數 869 閱讀 9669

fill函式的標頭檔案為: std;

memset函式的標頭檔案為: string.h (c++中為 cstring)

用法:

fill(vector.begin(), vector.end(), val);

按照單元賦值,將乙個區間內的元素都賦予val值;
例項:

#include

using

namespace std;

intmain()

用法:

memset(arr, val, cnt);

將已開闢的記憶體空間arr的前cnt個位元組裝置值val;
memset函式是按照位元組去賦值的,故val有限制的,常用於賦初值0;

例項:

#include

#include

#include

using

namespace std;

const

int inf =

0x3f3f3f3f

;//特例,可用memset初始化

intmain()

memset函式賦值是針對位元組進行的,在賦初值為0時速度最快;

對char型別可用memset函式任意填充,char型別剛好佔據乙個位元組;

fill函式可針對任意型別賦值,但賦值速度最慢(比迴圈賦值的速度慢);

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

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

memset 函式與fill 函式的區別

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

memset 函式與sort 函式

陣列的初始化及資料的排序 include include include include using namespace std int main int n while cin n int data n memset data,0,sizeof data memset 陣列名,初值,sizeof ...