1.如果有使用動態陣列,必須含入標頭檔 -> #include <vector>
2.vector的建構:
2-1.vector<int> ivector(10),算術相關型態初始為0,指標型態也初始為0(表示不指向任何位址)。
2-2.vector<int> ivector(10, 5),宣告ivector有10個元素,每個元素值初始皆為5。
2-3.可以使用另一個vector來建構,例如:vector<int> ivector2(ivector1)。
2-4.可以使用 operator= 來初始vector,例如:vector<int> ivector2 = ivector1。
2-5.可以使用另一個陣列來建構,要指定的是元素的起始位址與最後一個元素的下一個位址,例如:int iarr[]={1,2,3}; vector<int> ivector(iarr,iarr+3);
2-6.可以建構一個元素為空的vector物件,例如:vector<int> ivector。
3.可以使用size()查詢vector的元素長度,或是使用empty()測試長度是否為0。
4.如果打算將元素放入vector中,可以使用push_back(),例如:
5.如果打算將元素循序取出,則可以begin()與end()方法分別傳回起始位置的iterator與結束位置的iterator,例如:
6.可以使用下標運算子[ ]來存取vector的元素,但必須實際有此位置,也就是假設宣告一個空的vector物件ivector,其長度(size)為0,此時不能使用ivector[0]來取得第一個元素值,因為實際上ivector中還沒有任何 的元素。
7.當使用push_back()將元素加入vector時,vector的長度會自動增長,如果每次增加長度都要重新配置記憶體沒有效率,所以vector會自動增加較多的容量,當元素的長度超過容量時,才會再重新配置記憶體,可以使用capacity()來取得容量,使用size()來取得陣列實際長度。
8.如果打算對vector進行排序、尋找、反轉等操作,可使用標準函式庫中的泛型演算法,不過必須含入標頭檔-> #include <algorithm> :
8-1.排序:sort( ivector.begin( ) , ivector.end( ) )。
8-2.搜尋:find( ivector.begin( ) , ivector.end( ) ,自訂的搜尋值)。
8-3.反轉:reverse( ivector.begin( ) , ivector.end( ) )。
留言列表