vector是一種類型對象的集合,它是一種順序容器,容器中的所有對象必須都是同一種類型。想了解順序容器的更多內容:C++順序容器知識總結。vector的對象是可以動態生長的,這說明它在初始化時可以不用指定大小,而是再使用時根據元素所需的空間動態增長。C++中還有一種常見的類型string,它和vector有很多相似之處,具體可以看《C++標准庫string類型的使用和操作總結》這篇博文。下面簡單介紹一下vector容器的使用和操作。
一.聲明和初始化
使用vector之前必須在程序前的庫包含中包含相應的頭文件,如下:
#include<vector>
using std::vector;
vector定義了幾種構造函數,所以它提供了幾種初始化的方式,如下:
vector<T> v1; vevtor保存類型為T的對象。默認構造函數v1為空。 vector<T> v2(v1); v2是v1的一個副本,v1和v2的元素類型必須相同 vector<T> v3(n,i); v3包含n個值為i的元素 vector<T> v4(n); v4包含初始化的元素的n個副本,默認元素值為0
二.常用操作
vector的很多操作都類似於string對象的操作,下面僅僅列出一些常用的操作。
v.empty(); 如果v為空,則返回true,否則返回false v.size(); 返回v中元素的個數 v.push_back(t); 在v的末尾添加一個值為t的元素 v[n]; 返回v中位置為n的元素,從0開始計數 v1=v2; 把v的內容替換為v2的一個副本 v1==v2; 比較v1和v2的內容,相等則返回true,否則返回false !=,<,<=,>和>= 保持這些操作符慣有的含義
值得注意的是在進行下標操作時,必須是已經存在的元素才能進行下標索引,否則通過下標索引賦值,不會添加任何元素,如:
vertor<int > ivec; for(vector<int >::size_type i=0;i!=10;++i) ivec[i]=i; //上面則條語句不會像容器添加任何元素,因為ivec是空的對象,所以應該改成下面的語句 vertor<int > ivec; for(vector<int >::size_type i=0;i!=10;++i) ivec.push_back(i);
參考文獻
《C++ PRIMER》 中文版