C++標準庫vector類型的使用和操做總結 C++順序容器知識總結

  vector是一種類型對象的集合,它是一種順序容器,容器中的全部對象必須都是同一種類型。想了解順序容器的更多內容:C++順序容器知識總結。vector的對象是能夠動態生長的,這說明它在初始化時能夠不用指定大小,而是再使用時根據元素所需的空間動態增加。C++中還有一種常見的類型string,它和vector有不少類似之處,具體能夠看《C++標準庫string類型的使用和操做總結》這篇博文。下面簡單介紹一下vector容器的使用和操做。html

一.聲明和初始化

  使用vector以前必須在程序前的庫包含中包含相應的頭文件,以下:函數

#include<vector>
using std::vector;

  vector定義了幾種構造函數,因此它提供了幾種初始化的方式,以下:post

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對象的操做,下面僅僅列出一些經常使用的操做。url

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
!=,<,<=,>和>=           保持這些操做符慣有的含義

  值得注意的是在進行下標操做時,必須是已經存在的元素才能進行下標索引,不然經過下標索引賦值,不會添加任何元素,如:spa

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);

 

參考文獻code

C++ PRIMER》 中文版htm

相關文章
相關標籤/搜索