728x90
C++ STL 중 해쉬 맵 unordered_map을 설명한다.
특징
- map보다 더 빠른 탐색을 하기 위한 자료구조이다.
- unordered_map은 해쉬테이블로 구현한 자료구조로 탐색 시간복잡도는 O(1)이다.
- map은 Binary Search Tree로 탐색 시간 복잡도는 O(log n)이다.
- unordered_map을 사용하기 위해서는 #include< unordered_map> 을 선언해야 한다.
- unordered_map은 중복된 데이터를 허용하지 않고 map에 비해 데이터가 많을 시 월등히 좋은 성능을 보인다.
- 하지만, key가 유사한 데이터가 많을 시 해시 충돌로 인해 성능이 떨어질 수도 있다.
- index로 접근할 수 없고 iterator로 접근해야 한다.
- 데이터가 많은 경우에는 unordered_map 이 map 보다 성능면에서 유리하다.
- 문자열을 키로 사용하는 경우 문자열이 길어질 수록 unordered_map 이 map에 비해 더 성능이 떨어질 수 있다.
- 유사도가 높은 문자열 집합을 키로 사용하는 경우에 map 의 성능이 떨어질 수 있다.
출처 : https://math-coding.tistory.com/31
함수
- empty( ) : 맵이 비어있는지 확인하는 함수이다.
- size( ) : 맵의 크기를 반환하는 함수이다.
- operator[ ] : 맵에서 key를 통해 value를 지정한다.
- find(key) : key에 해당하는 원소를 찾는 함수이다.
- count(key) : key에 해당하는 원소의 갯수를 반환하는 함수이다.
- insert( {key, value} ) : 맵에 pair<key, value> 를 추가하는 함수이다.
- erase(key) : key에 해당하는 원소를 제거하는 함수이다.
- clear( ) : 맵을 초기화하는 함수이다.
728x90
'알고리즘 > 개념정리' 카테고리의 다른 글
알고리즘(C++) / 문자 대소문자 판별, 숫자 판별, 공백 판별 (0) | 2021.08.04 |
---|---|
알고리즘(C++) / 벡터(vector) 중복제거 : unique (0) | 2021.07.01 |
알고리즘 / DFS(Depth First Search), BFS(Breath First Search) (0) | 2021.04.10 |
알고리즘(C++) / cin, cout 입출력 속도 높이기 (0) | 2021.04.10 |
알고리즘 / 그리디 알고리즘(탐욕 알고리즘) (0) | 2021.03.01 |
댓글