使用方法:
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...