2010-10-21 14 views
5

키 대신 데이터로 std :: map을 정렬하는 방법이 있습니까? 지금 당장 내 코드는 전체 맵을 어레이에 복제하여이를 수행합니다.std :: map 데이터 정렬?

+1

키/값이 반전 된 다른지도가 필요하십니까? –

+0

좋은 솔루션을 찾지 못했습니다. 두 개의 값이 같을 수 있기 때문에지도를 서로 바꿀 수는 없습니다 (많은 제안 사항처럼). 요소가 더 적은 새지도를 만들 수 있습니다. 사실 **지도가 값에 따라 정렬되는 것은 불가능합니다 **지도가 키별로 정렬되므로 (따라서 왜 빠릅니까?) 벡터처럼 값을 밀어 정렬 된 새 맵을 만들려고해도 키에 따라 정렬 된 맵이됩니다 !!! 내 코드에 구현 한 방법은 각 키와 값에 대해 정렬 된 벡터를 작성하여 응용 프로그램에서 벡터를 사용하는 것입니다. 벡터를 만들려면 먼저 – user2544830

+0

[STL map -> sort by value?] 가능한 복제본 (http://stackoverflow.com/questions/2699060/stl-map-sort-byvalue) –

답변

3

내가 기억할 수있는 한 std::map은 키순으로 정렬 된 항목을 반복하는 반복기를 제공합니다. 값으로 정렬 된 항목을 탐색하고 여전히지도를 사용하는 유일한 방법은 키와 값을 반대로하여 전체지도를 다른지도로 다시 작성하는 것입니다.

+0

단일 벡터 및 단순히 물건을 찾는 것이 더 좋았습니다. – Jookia

+2

이렇게하면 키 - 값 쌍 정보가 손실됩니다. –

+0

Oli Charlesworth의 답변은 http://stackoverflow.com/a/5056797/158371입니다. –

관련 문제