vector物件的初始化

2022-09-24 02:12:14 字數 1315 閱讀 4639

1、標準庫型別vector表示物件的集合,其中所有物件的型別必須相同。因為vector容納著「容納著」其他物件,所以也常被稱作容器。

2、想要使用vector必須包含適當的標頭檔案。

#include

using std::vector;//其定義在命名空間std中

3、vector是乙個類模板。當使用模板例項化類時,需要提供額外的資訊來指定編譯器把模板例項化成什麼樣的類,並且需要提供哪些資訊由模板自身決定。提供資訊的方式總是這樣:即在模板名字後面跟一對尖括號,在括號內放上資訊。

對於vector來說,提供的資訊是vector內所存放物件的型別。

vector i;

4、vector能容納絕大多數型別的物件作為其元素,但因為引用不是物件,所以不存在包含引用的vector。除此之外絕大多數內建型別和類型別都可以構成vector物件,甚至組成vector的元素也可以是vector。

但是需要指出,在早期版本的c++標準中如果vector的元素還是vector或者其他模板型別,則其定義的形式與現在的c++11新標準略有不同。

過去vector"空格">

現在 vector>

5、和任何一種類型別一樣,vector模板控制著定義和初始化向量的方法。參考之前的文章《c++中的初始化》:

5.1、直接初始化:vector i2(i1);//這裡只能用另乙個vector物件作為初始值

5.2、拷貝初始化:vector i2=i1;//這裡只能用另乙個vector物件作為初始值

5.3、預設值初始化:vector i;//空vector物件

5.4、重複序列初始化:vector i(5,0);//00000

5.5、值初始化:可以只提供vector物件容納的元素數量而略去初始值。此時庫會建立乙個值初始化的元素初值,並把它賦給容器中的所有元素。這個初值由vector物件中元素的型別決定。

vector i(10);//10個元素,每個都初始化為0

vector j(10);//10個元素,每個都是空string物件

5.6.1、有些類要求必須明確提供初始值,如果vector物件中元素的型別不支援預設初始化,我們就必須提供初始的元素值。

5.6.2、使用值初始化時,只能使用直接初始化。

5.6、列表初始化:vector i;或vector i=;

想要列表初始化vector物件,花括號裡的值必須與元素型別相同。否則在編譯器確認無法執行列表初始化時,便會嘗試用值初始化或重複序列初始化。

vector i;//10個0

vector j;10個s

最後再次強調,如果想使用字面量來初始化vector物件的話,只能考慮使用重複序列初始化及列表初始化。

定義和初始化vector物件

和任何一種類型別一樣,vector模板控制著定義和初始化向量的方法。下面列出了定義vector物件的常用方法。預設初始化 vector物件從而建立乙個指定型別的空vector vector svec 預設初始化,svec不含任何元素看起來空vector好像沒什麼用,但是很快我們就會知道程式在執行時可...

C 初始化vector物件的方式

初始化vector物件的方式 vectorv1 v1是乙個空vector,他的元素型別為t,執行預設初始化 vectotv2 v1 v2中包含v1所有元素的副本 vectotv2 v1 等價於v2 v1 vectotv3 n,val v3包含了n個重複的元素,每個元素的值都是val vectotv4...

vector陣列的初始化

vector容器是包含 type 型別元素的序列容器。vector容器的大小 長度 可以自動增長,從而可以包含任意數量的元素,只要元素個數超出 vector 當前容量,就會自動分配更多的空間。但是只能在容器尾部高效地刪除或新增元素。vectorname type 指數組型別,例如int,float,...