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;上面的**表示:將1,2,3三個元素從尾部新增到v容器中,現在容器的長度為3,三個元素分別是1,2,3int main()
可以像陣列一樣使用下標訪問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...