C STL中vector的六種初始化方式

2021-10-10 17:07:02 字數 823 閱讀 6176

預設初始化,vector為空, size為0,表明容器中沒有元素,而且 capacity 也返回 0,意味著還沒有分配記憶體空間。這種初始化方式適用於元素個數未知,需要在程式中動態新增的情況。

或 vectorilist2 = ilist1;

兩種方式等價 ,ilist2 初始化為ilist 的拷貝,ilist必須與ilist2 型別相同,也就是同為int的vector型別,ilist2將具有和ilist相同的容量和元素

vectorilist ;

ilist 初始化為列表中元素的拷貝,列表中元素必須與ilist的元素型別相容,本例中必須是與整數型別相容的型別,整型會直接拷貝,其他型別會進行型別轉換

ilist3初始化為兩個迭代器指定範圍中元素的拷貝,範圍中的元素型別必須與ilist3 的元素型別相容,在本例中ilist3被初始化為。

注意:由於只要求範圍中的元素型別與待初始化的容器的元素型別相容,因此迭代器來自不同的容器是可能的,例如用乙個double的list的範圍來初始化ilist3是可行的。另外由於建構函式只是讀取範圍中的元素進行拷貝,因此使用普通迭代器還是const迭代器來指出範圍並沒有區別。這種初始化方法特別適合於獲取乙個序列的子串行。

預設值初始化,ilist4中將包含7個元素,每個元素進行預設的值初始化,對於int,也就是被賦值為0,因此ilist4被初始化為包含7個0。當程式執行初期元素大致數量可預知,而元素的值需要動態獲取的時候,可採用這種初始化方式。

指定值初始化,ilist5被初始化為包含7個值為3的int

內容來自於c++primer習題集(第五版)p198

vector 的六種 建立和初始化方法

c 的初始化方法很多,各種初始化方法有一些不同。1 vectorilist1 預設初始化,vector為空,size為0,表明容器中沒有元素,而且 capacity 也返回 0,意味著還沒有分配記憶體空間。這種初始化方式適用於元素個數未知,需要在程式中動態新增的情況。2 vectorilist2 i...

C STL中的容器 Vector

c stl中的verctor好比是c語言中的陣列,但是vector又具有陣列沒有的一些高階功能。與陣列相比,vector就是乙個可以不用再初始化就必須制定大小的邊長陣列,當然了,它還有許多高階功能。要想用vector首先得包含標頭檔案vector。如果vector的元素型別是int,預設初始化為0 ...

C STL中vector的用法

vectorvec。這樣就定義好了定義了乙個名為vec的儲存t型別資料的動態陣列。其中t是我們陣列要儲存的資料型別,可以是int float double c vector方法總結 方法功能 push back 在末尾加入乙個元素 pop back 在末尾彈出乙個元素 size 獲取長度 clear...