C++標准庫vector類型的使用和操作總結


  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》 中文版


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM