2016-10-20 40 views
0

我目前正在C++中創建自己的體素引擎,但是我似乎遇到了一個問題。從多維地圖中刪除值?

我使用的是基於塊的系統並將其存儲在三維地圖中,變量的定義是這樣的:

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

不過,我真的不能找到刪除任何值有道從地圖上看,我嘗試過使用map::erase函數,但沒有成功,有沒有什麼好的方法可以做到這一點,我不知道?

P:S 這是map::erase功能我嘗試:

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

提前感謝!

+0

了,那

嘗試通過例如除去所述第一元件擦除功能拋出一個錯誤,或者它只是不擦除你想要的東西? – code11

+0

定義「正確的方式」。 –

+0

你能告訴你如何嘗試刪除?一個輸入的例子呢? – Vitorlui

回答

0

地圖是一個鍵 - 值類型,這樣就可以不嘗試訪問作爲數組:

Chunks.erase(KeyOfFirstElement); 

從: http://www.cplusplus.com/reference/map/map/erase/

+0

不會擦除一個值,而是整個行? – Anonymus

+0

是的,它肯定會刪除實際圖層和你的孩子。如果你想要較低層,你將需要訪問地圖內的元素,第二層提取第一層,直到你到達你想要的地圖,然後刪除一個元素... – Vitorlui

+0

你爲什麼使用它,這種方式3D地圖?可能有更好的方法使用另一個數據結構,如果你把你的問題輸入信息和輸出,你可能可以幫我們; – Vitorlui