2016-10-20 8 views
0

저는 현재 C++로 자체 보셀 엔진을 만들고 있지만 문제가있는 것 같습니다. 나는 덩어리 기반 시스템을 사용하여 3 차원지도에 저장하고다차원 맵에서 값을 삭제 하시겠습니까?

는 변수 정의는 다음과 같습니다

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

그러나, 나는 정말 모든 값을 삭제하는 적절한 방법을 찾을 수 없습니다 지도에서, 나는 map::erase 함수를 사용하여 시도했지만 succes가 없다면 이것을 인식 할 수있는 좋은 방법이 있습니까?

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

예, 실제 레이어와 자녀를 삭제합니다. 하위 레이어를 원한다면 원하는 레이어에 도달 할 때까지 첫 번째 레이어를 추출하고 두 번째 레이어에서 추출한 요소에 액세스해야합니다. 요소가 ... – Vitorlui

+0

왜이 방법으로 3D-map을 사용하고 있습니까? 아마 당신이 질문에 입력 정보와 당신이 원할 수있는 출력을 넣어 준다면 아마도 다른 데이터 구조를 사용하는 더 나은 접근법이 될 것입니다;) – Vitorlui