반응형
SMALL
std::unordered_map
- map보다 더 빠른 탐색을 위한 자료구조
- 해쉬테이블로 구현한 자료구조
- O(1)의 시간복잡도를 가짐
- Map의 경우 O(log n)의 시간복잡도를 가짐
- #include <unordered_map>을 선언하면 사용 가능
- std::pair<key type, value type>으로 구성되며 key가 유사한 데이터가 많으면 성능이 떨어짐
728x90
unordered_map 정렬하기
- 각 Value로 정렬한 후 출력을 진행하는 간단한 로직
#include <unordered_map>
#include <algorithm>
void main()
{
std::unordered_map<std::string, int> _map;
_map.insert({"a",1});
_map.insert({"b",4});
_map.insert({"c",3});
_map.insert({"d",2});
//use vector for sorting
std::vector<std::pair<std::string, int>> sortingArray(_map.begin(), _map.end());
std::cout << "Before Sorting" << std::endl;
for(auto& data : sortingArray)
{
std::cout << data.first << ", " << data.second << std::endl;
}
std::sort(sortingArray.begin(), sortingArray.end(),
[](std::pair<std::string,int>& a, std::pair<std::string,int>& b)
{
//value 기준 정렬
return a.second < b.second; // value 오름차순 정렬
return a.second > b.second; // value 내림차순 정렬
//key 기준 정렬
return a.first < b.first; // key 오름차순 정렬
return a.first > b.first; // key 내림차순 정렬
});
std::cout << "After Sorting" << std::endl;
for(auto& data : sortingArray)
{
std::cout << data.first << ", " << data.second << std::endl;
}
}
- 결과화면
반응형
'개발 > C++' 카테고리의 다른 글
C++20 신규 기능 정리 (0) | 2023.01.25 |
---|---|
Boost Geometry 자주 사용하는 함수 정리 1편 (0) | 2022.11.02 |
[Boost Geometry] points -> polygon cluster (0) | 2022.08.10 |
std::string tokenizing 방법 (0) | 2022.04.19 |
std::string contains 함수를 대신하는 find 함수 (0) | 2022.04.19 |