簡介:
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 當前容量,就會自動分配更多的空間。只能在容器尾部高效地刪除或新增...