2012-04-12 11 views
0

2次元格子を表す2次元ベクトルを持ちます。例えばgrid[0][2]です。私は '挿入'する必要があります- 正しい単語ではないかもしれません。特定の場所でのベクトルはgrid[3][2]は間違いgrid[0][0]があるでしょうが、イムはgrid[3][2]挿入に必要とするときgrid[0][0]以外のそれの前に何もないかもしれないと後でのための間にスペースが必要であると言います。これを行う方法はありますか?2次元ベクトルの特定の位置に挿入

ありがとうございました。

PS:私はベクトルの大きさが知られていないことに注意すべきである(彼らは時間をかけて成長します)

+0

アレイが必要以上に小さい場合は、サイズを変更してから挿入します。 – Robinson

+0

@Robinsonグリッドを 'grid [3] [2]'として参照する必要があります。そうでなければ、 'grid [0] [1]'にプッシュされた場合、X3 Y2がどこに位置しているのかわかりません。 – Elgoog

+0

文字通り、x、yが配列に存在しない場合はx、yを格納し、x、y:pを格納するのに十分な大きさになるまで配列のサイズを変更します。 – Robinson

答えて

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

+0

@jrok興味深い、私は少し混乱しているようだ。私は自分の知識を磨く必要があるかもしれません。グリッド[3] [0] /グリッド[3] [1]とグリッド[3] [2]を参照できますが、グリッド[2] [0] ) – Elgoog

+0

私は 'grid [2] .resize(1)' – Elgoog

関連する問題