키 대신 데이터로 std :: map을 정렬하는 방법이 있습니까? 지금 당장 내 코드는 전체 맵을 어레이에 복제하여이를 수행합니다.std :: map 데이터 정렬?
답변
내가 기억할 수있는 한 std::map
은 키순으로 정렬 된 항목을 반복하는 반복기를 제공합니다. 값으로 정렬 된 항목을 탐색하고 여전히지도를 사용하는 유일한 방법은 키와 값을 반대로하여 전체지도를 다른지도로 다시 작성하는 것입니다.
단일 벡터 및 단순히 물건을 찾는 것이 더 좋았습니다. – Jookia
이렇게하면 키 - 값 쌍 정보가 손실됩니다. –
Oli Charlesworth의 답변은 http://stackoverflow.com/a/5056797/158371입니다. –
- 1. std :: map insert 또는 std :: map find?
- 2. std :: map 내 데이터 트랙을 잃어 버렸습니까?
- 3. std :: vector, std :: map 및 메모리 문제
- 4. std :: map default value
- 5. C에 std :: map 포팅?
- 6. C++ 버전 std :: map
- 7. 혼란스러운 std :: map 삽입 동작
- 8. STL std :: map 동적 순서
- 9. 멤버 함수 포인터의 std :: map?
- 10. std :: map to Python 매핑
- 11. 비정상적인 std :: map 런타임 오류
- 12. 삽입 순서를 추적하는 std :: map?
- 13. std :: map segfaults 연산자 [] 사용시
- 14. std :: map <X, std :: vector <Y>> 반복 및 벡터 정렬
- 15. 왜 std :: map :: operator []가 반 직관적입니까?
- 16. std :: map 및 boost :: any를 기반으로하는 데이터 저장소
- 17. 반복자 순서에 대한 C++ std :: map 질문
- 18. std :: tm 정렬 방법
- 19. std :: string 키와 int 키의 std :: map 사용 비용은?
- 20. const std :: map <boost :: tuples :: tuple, std :: string>?
- 21. std :: map <tstring <std :: map <tstring, unsigned int >> 할당 실패
- 22. std :: map :: const_iterator가있는 템플릿 클래스의 중첩 구조체
- 23. std :: map 맞춤 키가 아닌 고유성 문제
- 24. 세그먼트 화 오류가 std :: map :: clear을 호출합니다.
- 25. std :: map 확장 초기화 목록은 어떻게 생겼습니까?
- 26. std :: map 키를 const로 만드는 것이 합리적입니까?
- 27. std :: map 키의 가장 빠른 유형은 무엇입니까?
- 28. std :: map :: iterator가 증가시 프로그램을 충돌 함
- 29. 템플릿 클래스 값의 C++ std :: map
- 30. gdb의 std :: map 값을 출력하는 방법
키/값이 반전 된 다른지도가 필요하십니까? –
좋은 솔루션을 찾지 못했습니다. 두 개의 값이 같을 수 있기 때문에지도를 서로 바꿀 수는 없습니다 (많은 제안 사항처럼). 요소가 더 적은 새지도를 만들 수 있습니다. 사실 **지도가 값에 따라 정렬되는 것은 불가능합니다 **지도가 키별로 정렬되므로 (따라서 왜 빠릅니까?) 벡터처럼 값을 밀어 정렬 된 새 맵을 만들려고해도 키에 따라 정렬 된 맵이됩니다 !!! 내 코드에 구현 한 방법은 각 키와 값에 대해 정렬 된 벡터를 작성하여 응용 프로그램에서 벡터를 사용하는 것입니다. 벡터를 만들려면 먼저 – user2544830
[STL map -> sort by value?] 가능한 복제본 (http://stackoverflow.com/questions/2699060/stl-map-sort-byvalue) –