STL學習筆記 vector容器 動態陣列

2021-09-28 21:16:44 字數 1684 閱讀 8128

簡介:

vector是將元素置於乙個動態陣列中進行管理的容器

vector可以隨機訪問元素,支援索引值直接訪問,用或者at()方法

vector下尾部新增或者刪除元素非常快,但在中間或頭部插入或者刪除元素比較耗時

標頭檔案:

#include

vector基本操作:

vectorv;

v.push_back(1); // 從尾部插入元素

int b = v.front(); // 獲取頭部元素

int a = v.back(); // 獲取尾部元素

a = v.pop_back(); //彈出並刪除尾部元素

v.size(); //元素長度

v.front() = 11; //修改頭部元素的值

v.back() = 41; //修改尾部元素的值

vector初始化:

vectorv;

v.push_back(1); 

v.push_back(3);

vectorv2 = v;

vectorv3(v.begin(), v.end());

vectorv4(3);//事先分配3個元素空間,預設初始化為0

vectorv4(3, 9); // 三個元素都是9

vector遍歷:

vectorv(10); //當用陣列的方式遍歷並且是給vector賦值的時候,必須先分配好空間

// push_back強化

v.push_back(1); //此時在第11個位置插入,因為push_back是在尾部插入的

v.push_back(3);//此時在第12個位置插入,因為push_back是在尾部插入的

//陣列方式

for(int i = 0; i < v.size(); i++)

//迭代器方式-正向迭代

for(vector::iterator it = v.begin(); it != v.end(); it++)

//迭代器方式-逆向迭代

for(vector::reverse_iterator rit = v.rbegin(); rit != v.rend(); rit++)

迭代器強化:

1.  v.begin()指向v的第乙個元素的位置,v.end()指向的是v最後乙個元素的下乙個位置

2.  迭代器種類:正向迭代器、逆向迭代器、雙向迭代器、唯讀迭代器、、、、

vector刪除和插入:

vectorv(10);

for(int i = 0; i < v.size(); i++)

//根據元素的位置刪除

v.erase(v.begin(), v.begin() + 4); //區間刪除

v.erase(v.begin() + 4); //刪除指定位置單個元素

//根據值刪除

for(vector::iterator it = v.begin(); it != v.end(); ) else

}//插入

vectorv1(2, 7);

v.insert(v.begin()+3, 100);//在某個位置插入100

v.insert(v.begin()+3, 3, 100);//在某個位置插入3個100

v.insert(v.begin()+2, v1.begin(), v1.end()); //在某個位置插入一段資料

STL學習 二 vector容器

這一篇講的是vector vector類稱作向量類,它實現了動態陣列,用於元素數量變化的物件陣列。vector類也從0開始的下標表示元素的位置,與陣列不同的是vector物件建立後,陣列的元素個數會隨著vector物件元素個數的增大和縮小而自動變化 stl容器裡面的函式集合一般都有共性,也就是說這個...

STL順序容器 vector

vector是乙個線性順序結構。相當於陣列,但其大小可以不預先指定,並且自動擴 展。它可以像陣列一樣被操作,由於它的特性我們完全可以將vector 看作動態數 組。在建立乙個vector 後,它會自動在記憶體中分配一塊連續的記憶體空間進行資料 儲存,初始的空間大小可以預先指定也可以由vector 預...

STL序列容器 vector

二 vector vector容器是包含 t 型別元素的序列容器,和 array容器相似,不同的是 vector容器的大小可以自動增長,從而可以包含任意數量的元素 因此型別引數 t 不再需要模板引數 n。只要元素個數超出 vector 當前容量,就會自動分配更多的空間。只能在容器尾部高效地刪除或新增...