2017-05-26 15 views
-3

現在、ネストされたmap< int, map < int, char > > m;があります。私はx、y座標のキーとして2つのint値を持っていて、私は文字を保存しますm[x][y]='A'. I tried inserting the values into a vector map <ベクトル<ベクトル、char>> m; `しかし動作しませんでした。マップに保存されたcharの順序を追跡する方法はありますか?入れ子になったマップの挿入順序C++

+0

[mcve]を入力してください。 –

+0

なぜこの醜い_mapをmap_で使用しますか? 'struct point {int x; int y; }; map m; ' または ' map 、char> m; ' はいいですね。特定のx座標のすべての配置されたy座標を効率的に欲しない限り、 – renzo

+0

@renzo。なぜOPがそれを必要とするのか分かりません。 – user2079303

答えて

1

マップに保存された文字の順序を追跡する方法はありますか?

はい。マップに挿入すると、返されたイテレーターをコピーし、そのイテレーターをベクトルにプッシュできます。ベクターにプッシュされた要素は挿入順に残りますので、追跡されます。または、文字やマップ要素を追跡したいものに応じて、char値をプッシュするだけでもかまいません。また、使用方法に応じて、内部イテレータと外部イテレータの両方のペアを格納する必要があります。

operator[]の代わりにイテレータを取得するには、std::map::insertを使用する必要があります。

関連する問題