2012-04-12 53 views
0

我有一個2d矢量表示一個2D網格;例如grid[0][2]。我需要'插入'- 可能不是這裏正確的詞。一個在特定位置矢量說grid[3][2]肯定會有一個grid[0][0]但是當需要IM插入grid[3][2]裏面可能什麼也比其他grid[0][0]有需要在之間的空間供以後之前。有沒有辦法做到這一點?插入一個2d矢量的特定位置

謝謝你的幫助。

PS:我要指出的是,向量的大小是不知道(他們會隨時間而增加)

+0

如果數組小於您的需要,請調整其大小,然後執行插入操作。 – Robinson 2012-04-12 11:08:35

+0

@Robinson我需要將網格引用爲grid [3] [2]'否則,我不知道X3 Y2位於哪裏,如果它被推到'grid [0] [1]' – Elgoog 2012-04-12 11:11:16

+0

不,我的意思是從字面上看,如果你看到x,y不在數組中,因爲它不夠大,請調整數組的大小,直到它足夠大以存儲x,y,然後存儲x,y:p。 – Robinson 2012-04-12 11:25:47

回答

2

我不知道如果我正確地理解您的需求,但:

std::vector<std::vector<int>> grid(4); // 4 rows 

grid[3].resize(3) // resize 4th row 

grid[3][2] = 42; 

你的2D網格會再「看」這樣的:

| 
- 
| 
-     <--- 3 empty rows 
| 
-------------- 
| 0 | 0 | 42 | 
-------------- 

您可以自由調整後的行。請注意,有0行,但沒有[0] [0]元素,你必須自己添加它。

+0

是的。這就是我的意思:p。 – Robinson 2012-04-12 11:25:22

+0

@jrok有趣,看起來我有點困惑;我可能需要提高自己的知識水平。所以我正確地說我可以引用'grid [3] [0]/grid [3] [1]和grid [3] [2]'而不是'grid [2] [0]'(直到我創建它) – Elgoog 2012-04-12 11:34:17

+0

我將'grid [2] .resize(1)' – Elgoog 2012-04-12 11:36:59