vector是同一種對象的集合,每個對象都有一個對應的整數索引值。和string對象一樣,標准庫將負責管理與存儲元素相關的類存。引入頭文件
#include<vector>
1.vector對象的定義和初始化
vector<T> v1 vector保存類型為T的對象。默認構造函數,v1為空
vector<T> v2(v1) v2是v1的一個副本
vector<T> v3(n,i) v3包含n個值為i的元素
vector<T> v4(n) v4含有值初始化的元素的n個副本
如果沒有指定元素的初始化式,那麼標准庫將自行提供一個元素初始值進行值初始化。這個由庫生成的初始值將用來初始化容器中的每個元素,具體的值為何,取決於存儲在vector中元素的數據類型。
如果vector保存內置類型如int,那麼標准庫將用0值創建元素初始化式
vector<int> vv(10); //10個元素,每個被初始化為0
如果vector保存的是含有構造函數的類類型的元素,標准庫將用該類型的默認的構造函數創建元素的初始化式
vector<string> vvvv(10) //10個元素,每個被初始化為空字符串
還有第三種情況,元素類型可能是沒有定義構造函數的類類型。這種情況下,標准庫仍產生一個帶初始值的對象,這個對象的每個成員進行了值初始化。
除此之外,若
vector<int> vv{10}; //初始化第一個元素為10,其余按照默認值(0)初始化
2.vector對象的操作
幾種重要的操作
v.empty() 如果v為空,則返回true,否則返回false
v.size() 返回v中元素的個數
v.push_back() 在v的末尾增加一個值為t的元素
v[n] 返回v中位置為n的元素
v1=v2 把v1中的元素替換為v2中元素的副本
v1==v2 如果v1與v2相等,則返回true
!=,<,<=,>,>= 保持這些操作符慣有含義
size()返回相應vector類定義的size_type的值。
vector::size_type //error
vector<int>::size_type //ok
push_back()函數將新元素添加到vector最後面。