Vector向量容器

2021-08-31 16:25:06 字數 2280 閱讀 5566

vector向量容器優點:

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

2、vector向量容器具有記憶體自動管理的功能,對於元素的插入和刪除,可動態調整所佔的記憶體空間。

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

4、vector向量容器下標是從0開始計數,跟陣列的一樣。

vector向量容器缺點:

執行速度與陣列比較更慢。

首先:使用vector向量容器,需要標頭檔案包含宣告「#include 」

一、建立vector物件

建立vector物件常見的有三種形式

1、不指定容器的元素個數,如定義乙個用來儲存整形的容器:

vectorv;
2、建立時,指定容器的大小,如定義乙個用來儲存10個double型別的向量容器:

vectorv(10);
注意,元素下標為0~9;每個元素的值被初始化為0.0。

3、建立乙個具有n個元素的向量容器物件,每個元素具有指定的初始值:

vectorv(10,8.6); //定義乙個向量容器v,大小為10,每個元素都是8.6;
二、尾部元素擴張和使用下標方式訪問vector元素

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

可以對空的vector物件擴張,也可以對已有元素的vector物件擴張。

下標訪問的用法和陣列訪問方式類似;

#include #include using namespace std;

int main(int argc, char* argv)

cout《執行結果:

2 7 9 

四、元素的插入

insert()方法可以在vector物件的任意位置前插入乙個新元素,同時還會擴張乙個元素空間,插入後所有元素依次向後挪動乙個位置;

這裡使用insert()插入的位置,是元素的迭代器位置,不是下標。

#include #include using namespace std;

int main(int argc, char* argv)

cout《執行結果:

8 2 1 7 9 3

五、元素的刪除

erase()方法可以刪除vector中迭代器所指

的乙個元素或一段區間中的所有元素

clear()方法則一次性刪除vector中的所有元素(值得注意的是:上面所說缺點clear()無法清空記憶體,但是可以刪除元素)

#include #include using namespace std;

int main(int argc, char* argv)

v.erase(v.begin()+2); // 刪除2個元素,從0開始計數

vector::iterator it; //定義迭代器變數

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

cout《六、使用reverse反向排列演算法

需要標頭檔案: #include

#include #include #include using namespace std;

int main(int argc, char* argv)

reverse(v.begin(),v.end()); //反向排列向量從頭到尾的元素

vector::iterator it; //定義迭代器變數

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

cout《七、使用sort演算法對向量元素進行排序

需要標頭檔案: #include

預設情況下,公升序排列;另外可以自己設計排序比較函式

#include #include #include using namespace std;

bool comp(const int &a,const int &b)// 自己設計的排序比較函式:降序

int main(int argc, char* argv)

for(i=0;i<10;i++)

{cout《執行結果:

9 8 7 6 5 4 3 2 1 0

0 1 2 3 4 5 6 7 8 9

9 8 7 6 5 4 3 2 1 0

vector向量容器

vector容器是陣列的乙個泛化推廣,不僅可以像陣列那樣進行元素的隨機訪問,還可以在容器的尾端插入新元素,實現了random access container和back insertion sequence概念。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...

Vector(向量容器)

vector是乙個線性順序結構。相當於陣列,但其大小可以不預定指定,並且自動擴充套件。它可以像陣列一樣被操作,由於它的特性我們完全可以將vector看作動態陣列。在使用它時,需要包含標頭檔案include。在建立乙個vector後,它會自動在記憶體中分配一塊連續的記憶體空間進行資料儲存,初始的空間大...