標準庫型別vector

2021-08-10 00:24:28 字數 1982 閱讀 1695

使用方法:

vectorivec;             //ivec儲存int型別的物件

vectorsvec;            //svec儲存string型別的物件

//c++11的寫法

vector< vector> file    //該向量的元素是vector物件

//c++11以前的寫法 外層vector物件的右尖括號和其元素型別之間新增乙個空格

vector< vector> file    //該向量的元素是vector物件

尖括號中必須是物件:因為引用不是物件,所以不存在包含引用的vector。組成vector的元素也可以是vector.

vector是模板而非類,由vector生成的型別必須包含vector中元素的型別。如:vector這才是乙個型別

初始化vector的物件的方法

vectorv1

v1是乙個空vector,他潛在的元素型別是t型別,執行預設初始化

vectorv2(v1)

v2中包含v1中所有元素的副本

vectorv2 = v1

等價於v2(v1)

vectorv3(n,val )

v3中包含n個重複的元素,每個元素的值都是val

vectorv4(n)

v4包含了n個重複的執行了值初始化的物件

vectorv5

v5中包含了初始值個數的元素,每個元素被賦予相應的初始值

vectorv5 =

等價於是上一條。

vectorsvec;        //預設初始化,svec中不含任何元素。

看起來空vector沒有做任何事情,但其實這是最常用的一種方式:先定義乙個空的vector,,執行時獲取到元素值後在逐一新增。

如果提供的是乙個類內初始值,則只能使用拷貝初始化或者花括號的形式初始化。

如果提供的是初始元素值的列表,則只能把初始值都放在花括號中進行列表初始化,而不能使用圓括號。

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

vectorivec = 10; //錯誤,只能使用直接初始化形式指定向量大小。

vectorv1(10);            //v1有10個元素,每個都是0。用給定的容量值構造vector物件

vectorv2; //有乙個元素10 初始化vector物件為10

vectorv1(10,1); // v3有10個元素,每個都是1

vectorv2; //兩個元素10,1 初始化vector物件為10,1

·然而更常見的情況是:

對於這種情況,新增元素最簡單的方法是:利用vector物件的成員函式push_back向其新增元素。

c++標準要求vector在執行時能高效快速的新增元素,因此一開始並沒有指定容量大小。事實上,如果一開始就定義了容量大小,還會對效能有所影響。

3.3.3 其他vector操作

支援的操作

v.empty()

如果v不含有任何元素,返回真;否則返回假

v.size()

返回v中的元素個數

v.push_back(t)

向v的尾端新增乙個值為t的元素

v[n]

返回v中第n個位置上元素的索引

v1 = v2

用v2元素的拷貝替換v1中的元素

v1 =

用列表中元素的拷貝替換v1中的元素

v1 == v2

v1和v2相等 當且僅當它們的元素數量相同且對應位置元素值相同

v1 != v2

< ,<=,> , >=

以字典順序進行比較

標準庫vector型別

vector是同一種型別的物件的集合,每個物件都有乙個對應的整數索引值.和string物件一樣,標準庫將負責管理與儲存元素相關的記憶體.我們把vector稱為容器,是因為它可以包含其他物件.乙個容器中的所有物件都必須是同一種型別.使用vector之前,必須包含相應的標頭檔案.include usin...

標準庫型別vector

宣告 include using std vector 定義和初始化vector物件 vectorv1 vectorv2 v1 vectorv2 v1 vectorv3 n,val v3包含了n個重複的元素,每個元素的值都是val vectorv4 n v4包含了n個重複地執行了值初始化的物件 ve...

標準庫型別vector

文件 vector標準庫 include using std vector 預設初始化 vector a 定義乙個指定型別的空vector 列表初始化 vector b c 11新標準提供的另外一種初始化的方法,建立指定數量的元素 vector n,a 建立了n個型別為t的元素a 值初始化 vect...