C 標準庫型別vector的初始化以及基本操作

2021-09-13 13:26:04 字數 1904 閱讀 9498

標準庫型別vector表示物件的集合,其中所有物件的型別都相同。集合中的每個物件都有乙個與之對應的索引,索引用於訪問物件。因為vector「容納著」其他物件,所以它也常被稱作容器(container).要使用vector,必須包含適當的標頭檔案。

#includeusing std::vector
c++語言既有類模板(class template),也有函式模板,其中vector是乙個類模板。

模板本身不是類或者函式,相反可以將模板看做編譯器生成類或者函式編寫的乙份說明。編譯器根據模板建立類或者函式的過程稱為例項化(instantitation),當使用模板時,需要指出編譯器應把類或函式例項化成何種型別。

對於類模板來說,我們通過提供一些額外資訊來指定模板到底例項化成什麼樣的型別,需要提供哪些資訊有模板決定。提供資訊的方式總是這樣:即在模板名字後面跟一對尖括號,在尖括號內放上資訊。如

vectorvec;                //vec儲存int型別的物件

vectorvstr; //vstr儲存string型別的物件

vector> file; //該向量的元素是vector物件

vectorv1;            //v1是乙個空vector,它潛在的元素是t型別的,執行預設初始化(建構函式)

vectorv2(v1); //v2中包含v1多有元素的副本

vectorv2 = v1; //等價於v2(v1),v2中包含v1多有元素的副本

vectorv3(n,val); //v3包含了n個重複的元素,每個元素的值都是val

vectorv4(n); //v4包含了n個重複地執行了值初始化的物件

vectorv5; //v5包含了初始值個數的元素,每個元素被賦予相應的初始值

vectorv5=; //等價於v5

vector的成員函式push_back用於向其物件中新增元素

vectorv1;           //空vector物件

for(int i=0; i!=100; ++i)

v.push_back(i); //以次把整數值放到v1的尾端,迴圈結束後v1有100個元素,0-99

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

<, <=, >, >= 顧名思義,以字典序進行比較

注意:不能用下標形式新增元素

只能對確知已存在的元素執行下標操作!

迭代器:(具體詳解見迭代器(iterator))

//b表示v的第乙個元素,e表示v尾元素的下乙個位置

auto b=v.begin(), e=v.end();

未完待續...

C 標準庫vector型別

vector屬於順序容器,所謂順序容器,就是元素的順序與元素的值無關,與元素加入容器的位置相對應。對於vector可以將其理解為可變大小陣列,支援快速隨機訪問,在尾部之外的位置插入刪除可能會比較慢。了解完概念接下來就開始學習它的用法 假設以下 前面都包含vector標頭檔案,幷包含using nam...

c 標準庫型別 vector

一 標準庫型別vector表示物件的集合,物件型別相同,需要 include using namespace std or using std vector 二 定義和初始化vector物件 vectorv1 vectorv2 v1 vectorv2 v1 vectorv3 n,val n個val元...

C 標準庫型別 vector

vector表示物件的集合,其中所有的物件的型別均相同。如果需要使用vector,需要 include using std vector vector name 其中t表示物件的型別,除了基本內建型別外,也可以是string,甚至是vector型別vectorv1 預設初始化 vectorv2 v1...