C++STL之vector容器
初學STL,以下內容且當自己積累用,日後再慢慢完善。
向量容器(vector)是一種順序容器,是一塊連續分配的內存,支持隨機訪問,從數據安排的角度看,和數組極其相似。
數組跟vector的區別在於:數組是靜態分配空間,一旦分配了空間的大小,就不可以再改變了,例如,int a[6];而vector是動態分配內存,隨著元素的不斷插入,它會按照自身的一套機制不斷擴充自身的容量,vector容器的容量增長是按照容器現在容量的一倍進行增長。
至於叠代器,它類似一個指向vector中元素的指針。
------------------------------------------------------------------------
【front函數】
①函數原型:
reference front();
const_reference front();
②功能:
返回當前vector容器中起始元素的引用,即返回vector容器中的第一個元素。
------------------------------------------------------------------------
【back函數】
①函數原型:
reference back();
const_reference back();
②功能:
返回當前vector容器中末尾元素的引用,即返回vector容器中的最後一個元素。
------------------------------------------------------------------------
【begin函數】
①函數原型:
iterator begin();
const_iterator begin();
②功能:
返回一個當前vector容器中起始元素的叠代器。
------------------------------------------------------------------------
【end函數】
①函數原型:
iterator end();
const_iterator end();
②功能:
返回一個當前vector容器中末尾元素的叠代器。
------------------------------------------------------------------------
#include <iostream> #include <vector> using namespace std; int main() { vector<char> v; vector<char>::iterator iter1; //叠代器1 vector<char>::iterator iter2; //叠代器2 v.push_back(‘A‘); v.push_back(‘B‘); v.push_back(‘C‘); v.push_back(‘D‘); v.push_back(‘E‘); cout<<"v.front() = "<<v.front()<<endl; //輸出vector容器中的第一個元素 cout<<"v.back() = "<<v.back()<<endl; //輸出vector容器中的最後一個元素 iter1=v.begin(); cout<<*iter1<<endl; iter2 = v.end()-1; //註意v.end()指向的是最後一個元素的下一個位置,所以訪問最後一個元素 //的正確操作為:v1.end() - 1 cout << *iter2 << endl; return 0; }
OUTPUT:
v.front() = A
v.back() = E
A
E
C++STL之vector容器