std::map을 값으로 정렬
std::map을 값으로 정렬하려면 표준 sort() 함수와 같은 대체 접근 방식이 필요합니다. 키로만 요소를 정렬합니다. 이를 달성하려면 다음 해결 방법을 고려하십시오.
키 및 값 뒤집기
다음을 사용하여 원본 맵의 키와 값 쌍을 뒤집는 새 멀티맵을 생성합니다. 기능:
template<typename A, typename B> std::multimap<B,A> flip_map(const std::map<A,B> &src) { std::multimap<B,A> dst; std::transform(src.begin(), src.end(), std::inserter(dst, dst.begin()), flip_pair<A,B>); return dst; }
사용법:
원래 지도(예: std::map
std::multimap<double, int> dst = flip_map(src);
일반 연관 소스
이 솔루션은 가변 템플릿을 사용하여 모든 연관 컨테이너에서 작동하도록 일반화할 수 있습니다.
template<typename A, typename B, template<class,class,class...> class M, class... Args> std::multimap<B,A> flip_map(const M<A,B,Args...>&src) { std::multimap<B,A> dst; std::transform(src.begin(), src.end(), std::inserter(dst, dst.begin()), flip_pair<A,B>); return dst; }
이것은 소스로 std::map 및 std::unordered_map 모두에서 작동합니다. 뒤집기.
위 내용은 키가 아닌 값으로 std::map을 어떻게 정렬할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!