vector, 就是數學中的 – 向量.
vector是一個好用的類別, 可以當成陣列來使用, 但又不用事先宣告長度, 可以依實際需求, 使用push_back隨意增加元素. 存取時又如陣列般的使用 [index], 可以讀取, 也可以更改
更重要的是, 可以使用 size()來取得陣列的大小. 這就是Java中 length的概念. (其實Java 的陣列是由此得到靈感的. 也就是說, c++的vector才是鼻祖).
vector是 c++最原始的集合物件, 可以當成可變動長度的陣列使用. 但可能因為效能不好, 所以在Java中被拋棄了. 不過在c++中, 只有這個能用. 更正確的說, 在C++中, 若沒有多執行緒的狀況下, vector 是個很好用的東西.
使用vector時, 需先 include<vector>
vector支援<>泛型, 可以包含自訂資料型態. 但更神奇的是, 也包含了基本資料型態, 如int, short等. 請注意, Java的泛型不能包含基本資料型態.
#include <iostream> #include <vector> using namespace std; int main(){ vector<vector*>list; vector<int>*v; v=new vector<int>(); v->push_back(1); v->push_back(2); v->push_back(3); list.push_back(v); //delete v; 不可刪除 v=new vector<int>(); v->push_back(4); v->push_back(5); v->push_back(6); list.push_back(v); for (int i=0;i<list.size();i++){ for (int j=0;j<list[i]->size();j++){ printf("%d ", (*list[i])[j]); } printf("\n"); } }