Vector

      在〈Vector〉中尚無留言

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");
	}
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *