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

2021-08-20 04:16:06 字數 1025 閱讀 3797

c++的初始化方法很多,各種初始化方法有一些不同。

(1): vectorilist1;

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

(2): vectorilist2(ilist);

vectorilist2  = ilist; 

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

(3): vectorilist = ;

vectorilist ;

ilist 初始化為列表中元素的拷貝,列表中元素必須與ilist的元素型別相容,

本例中必須是與整數型別相容的型別,整形會直接拷貝,其他型別會進行型別轉換。

(4): vectorilist3(ilist.begin()+2,ilist.end()-1);

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

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

(5): vectorilist4(7);

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

(6):vectorilist5(7,3);

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

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

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

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

建立和初始化物件

類載入,同時初始化類中靜態的屬性 執行靜態 塊 分配記憶體空間,同時初始化非靜態的屬性 賦預設值,0 false null 呼叫student的父類構造器 對student中的屬性進行顯示賦值 如果有的話 執行匿名 塊 執行構造器 返回記憶體位址 注 子類中非靜態屬性的顯示賦值是在父類構造器執行完之...

物件的建立和初始化

三 構造器 本文主要講解類和物件的關係,以及如何建立和初始化物件,對構造器的詳解 1.首先建立乙個類,我這裡建立的是乙個學生類,裡面有學生的姓名 年齡。public class student public static void main string args 發現即使類中內容是空的,在主方法中...