vector向量容器

2022-08-30 15:24:23 字數 1716 閱讀 4342

vector向量容器不但可以像陣列一樣對元素進行隨機訪問,還能在尾部插入元素,是一種簡單高效的容器,可以代替陣列。

vector具有記憶體自動管理的功能,對於元素的插入和刪除,可以動態的調整所佔記憶體。

對於vector容器的容量定義,可以事先定義乙個固定大小,然後可以隨時調整其大小;也可以事先不定義,隨時使用push_back()方法從尾部擴張元素,也可以使用insert()在某個元素位置前面插入新元素。

vector容器有兩個重要的方法,begin()和end()。begin()返回的是首元素位置的迭代器,end()返回的是最後乙個元素的下乙個元素位置的迭代器。

建立vector物件的時候,可以不帶引數,帶乙個引數,帶兩個引數:

(1)不指定容器的元素的個數(不帶引數)

vectorv;
(2)指定容器的大小(帶乙個引數,表示容器的大小)

vectorv(10);
(3)建立乙個具有n個元素的向量容器物件,每個元素具有指定的初值(帶兩個引數,分別表示容器的大小和每個元素的初值)

vectorv(10,0);

通常使用push_back()對vector容器在尾部追加新元素。尾部追加元素,vector容器會自動分配新記憶體空間。

#includeusing namespace std;

int main()

上面的**表示:將1,2,3三個元素從尾部新增到v容器中,現在容器的長度為3,三個元素分別是1,2,3

可以像陣列一樣使用下標訪問vector中的元素

#include#includeusing namespace std;

int main()

cout<<"size:"<::iterator it=v.begin();

v.erase(it+1); //刪除v[1]

v.erase(it+4,it+7); //刪除v[4]~v[5](!!注意此時的陣列已經動態調整了)

for(it=v.begin();it

程式輸出:

size:10

0 2 3 4 8 9

empty:0

empty:1

reverse反向排列演算法,需要引入標頭檔案algorithm。

#include#include#includeusing namespace std;

int main()

vector::iterator it=v.begin();

for(it=v.begin();it0 1 2 3 4 5 6 7 8 9

9 8 7 6 5 4 3 2 1 0

使用sort演算法對向量排序,也需要引入標頭檔案algorithm。

sort演算法要求使用隨機訪問迭代器進行排序,在預設情況下,對向量元素進行公升序排列(當然可以認為進行改變)。

#include#include#includeusing namespace std;

bool comp(const double &a,const double &b)

int main()

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

vector::iterator it=v.begin();

for(it=v.begin();it輸出結果:

1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2

2 1.9 1.8 1.7 1.6 1.5 1.4 1.3 1.2 1.1

vector向量容器

vector容器是陣列的乙個泛化推廣,不僅可以像陣列那樣進行元素的隨機訪問,還可以在容器的尾端插入新元素,實現了random access container和back insertion sequence概念。vector具有自動的記憶體管理功能,對於元素的插入和刪除,能夠動態調整占用的記憶體空間...

Vector向量容器

vector向量容器優點 1 vector向量容器不但能像陣列一樣對元素進行隨機訪問,還能在尾部插入元素,是一種簡單 高效的容器,完全可以取代陣列。2 vector向量容器具有記憶體自動管理的功能,對於元素的插入和刪除,可動態調整所佔的記憶體空間。3 對於vector容器的容量定義,可以事先定義乙個...

vector向量容器

vector向量容器 include include vector向量容器標頭檔案 include c語言標頭檔案 include 使用sort演算法 using namespace std bool comp int a,int b 自定義函式從大到小排序 int main cin x v.ins...