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後,它會自動在記憶體中分配一塊連續的記憶體空間進行資料儲存,初始的空間大...