2010-06-15 147 views
1

我已經在網上搜索了它,但我沒有得到滿意的結果。如何使用「矢量矢量」?

我想創造這樣

vector< vector<int*> > test_vector; 

如何填寫載體這個載體?如何訪問它的成員?也許有人知道網上的一些很好的教程?

親切的問候 MIKEY

+5

我肯定不會使用int *作爲你的向量的內容。如果你要存儲數字,只需使用int(或double/float/...)。指針的使用使得當你的矢量被破壞時你必須刪除它們中的每一個。否則,你會得到一個內存泄漏。 – rubenvb 2010-06-15 17:59:14

+0

請參閱:http://stackoverflow.com/questions/823562/multi-dimensional-vector – Shog9 2010-06-15 18:06:07

+0

我知道你的關注,但上面的代碼片段只是一個示範。實際上,我必須處理指向對象的指針。 – 2010-06-15 21:33:11

回答

3

只要記住的test_vector每個元素都是vector<int*>類型。填寫每個元素向量即可填寫test_vector

您可以像訪問任何多維數組一樣訪問它。請參閱:

int *p = test_vector[0][0]; 

或者:

int *p = test_vector.at(0).at(0); 
+0

謝謝!我重新考慮了這個問題,並且爲了編寫一些測試程序,這些測試程序幫助我理解! – 2010-06-16 17:29:53

1

PS 如果你想使用某種類型的矩陣,我寧願只使用一維矢量地圖(因爲性能)的訪問。

例如矩陣M具有m行和n列:可以映射調用

M [i] [j] = x至M [我* N + j]的= X。

+1

這假設OP希望每個內部矢量具有相同的尺寸......這可能不是當前的問題。 – andand 2010-06-15 18:09:39

+0

因此,我在我的答案中使用矩陣。 – LonliLokli 2010-06-15 21:24:37

1

通過在其中放入載體來填充矢量矢量。

您以與其他矢量相同的方式訪問其成員。