[cpp] map을 value 기준으로 정렬하기
map의 기본 정렬
map의 원소들은 key 값을 기준으로 오름차순 정렬되어있다. 따라서 내림차순으로 정렬하고 싶다면 int 형 기준으로 map<int, int, greater> 를 사용해주면 된다.
만약 key가 아니라 value로 정렬하고 싶다면?
이때는 map의 요소들을 vector로 옮겨서 정렬해야한다.
1) map->vector
2) sort vector
map<char, int> m;
vector<pair<char, int>> v(m.begin(), m.end());
sort(v.begin(), v.end(), comp);
만약 value의 오름차순 정렬해야 하기 때문에 comp 함수를 작성하면 된다. (내림차순으로 정렬시에도 마찬가지)
static bool comp(pair<char, int>& a, pair<char, int>& b){
return a.second < b.second;
}
leetcode에서 문제를 풀다가 위 방법을 사용했다.
Author And Source
이 문제에 관하여([cpp] map을 value 기준으로 정렬하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@keybomb/cpp-map을-value-기준으로-정렬하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)