C fill()和fill n 函式用法

2021-09-29 07:56:10 字數 1020 閱讀 5234

c++ fill()和fill_n()函式用法

fill 和fill_n函式是c++ primer第十二章泛型演算法部分內容,並把它們稱為生成和變異演算法,也就是說這兩個函式只能對輸入範圍內已存在的元素進行操作。如果試圖對空容器進行fill_n操作,會導致嚴重的執行錯誤,所以在對元素進行寫入操作時要檢查目標的大小是否足以儲存要寫入的元素。(copy)

fill函式的作用:將乙個區間的元素都賦予val值。

函式引數 :fill(vec.begin(), vec.end(), val); val為將要替換的值。

fill_n函式的作用:引數包括 : 乙個迭代器,乙個計數器以及乙個值。該函式從迭代器指向的元素開始,將指定數量的元素設定為給定的值。

fill_n(vec.begin(),10,val);

注意:不能在沒有元素的空容器上呼叫fill_n函式,但是可以通過下面的方法改進。

fill_n(vec.begin(),10,val);

為了保證演算法有足夠的元素儲存輸出資料,我們使用「插入迭代器」(insert iterator),插入迭代器是可以給基礎容器新增元素的迭代器。

請看例子:

bool p[

501]

;fill

(p+1

,p+500,0

);int p[

501]

;fill

(p+1

,p+500,0

);

#include

#define mem(a,b) memset(a,b,sizeof(a))

typedef

long

long ll;

using

namespace std;

intmain()

C fill和fill n函式用法介紹和比較

侵刪 fill函式的作用是 將乙個區間的元素都賦予val值。函式引數 fill first,last,val first為容器的首迭代器,last為容器的末迭代器,val為將要替換的值。例題 給你n個數,然後輸入一些操作 start,end,paint。表示從start到end都賦予paint的值,...

c fill和memset函式區別

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

發現了climits和STL的fill n ,哈

看別人 突然發現還有climits limits.h 這麼個頭檔案,以後初始化最大值最小值什麼的就方便多啦 我執行下了那個程式。同樣是那個人的 我不知道那是誰。還發現fill n 可以將值拷貝給first first n個元素 fill n 原型 template class forwarditer...