2016-10-20 8 views
0

私は現在、自分のボクセルエンジンをC++で作っていますが、問題を抱えているようです。私はチャンクベースのシステムを使用して3次元マップに格納していますマルチディメンションマップから値を削除しますか?

は、変数の定義は次のようになります。

map<uint64_t,map<uint64_t,map<uint64_t,Chunk*>>> Chunks; 

しかし、私は本当に任意の値を削除する適切な方法を見つけることができませんマップから、私はmap::erase機能を使用しようとしましたが、成功していないので、これを行う良い方法はありますか?私はそれを知らないのですか?

P:事前に

Chunks[x][y].erase(z); 

ありがとう:S これは私がしようとしていたmap::erase機能でした!

例で最初の要素を削除するようにしてください:あなたは配列としてアクセスを試みることはできませんので

+0

ということでした消去機能はエラーを投げるか、単にあなたが望むものを消去していませんか? – code11

+0

「正しい方法」を定義します。 –

+0

あなたは削除しようとするとどのように表示することができますか?入力例も? – Vitorlui

答えて

0

マップは、キーと値のタイプである

Chunks.erase(KeyOfFirstElement); 

から: http://www.cplusplus.com/reference/map/map/erase/

+0

値は消去せず、全体を消去しますか行? – Anonymus

+0

はい、実際のレイヤーと子供を削除します。下位レイヤーが必要な場合は、マップ内のエレメントにアクセスし、最初のレイヤーを抽出し、必要なマップに到達するまで2番目にレイヤーを抽出する必要があります要素... – Vitorlui

+0

なぜあなたはそれを使用しています、この方法で3Dマップ? )おそらく私たちがあなたを助けることができる入力情報と出力をあなたの質問に入れれば、別のデータ構造を使ったほうがよいでしょう; – Vitorlui

関連する問題