fill()、fill_n()與memset()函式的區別
阿新 • • 發佈:2022-05-09
-
fill
在標頭檔案
<algorithm>
裡。按照陣列的始末位置以一個數組元素為單位賦值,將區間內的每一個元素都賦值為
val
。程式碼:fill(vector.begin(), vector.end(), val);
-
fill_n()
在標頭檔案
<algorithm>
裡。從當前起始點開始,將之後的
cnt
個元素賦值為val
。注意:不能在沒有元素的空容器上呼叫
fill_n()
函式 - 程式碼:fill(vector.begin(), cnt, val);
-
memset()
在標頭檔案
<cstring>
裡。將已開闢的記憶體空間
arr
的前cnt
val
。 - 程式碼 : memset(a,inf,sizeof(a)); //a為陣列首地址;也可是陣列任意一位地址eg:a+3
- 可複製 0, -1 ,inf(最大值) // const int inf=0x3f3f3f3f
#include<iostream> #include<queue> #include<cstring> #include<vector> using namespace std; const int inf=0x3f3f3f3f; int main() { int a[10]={0}; memset(a+3,-1,sizeof(a)); for(int i=0;i<10;i++) printf("%d ",a[i]); return 0; }