map 은 정렬된 상태로 자료를 저장할 때 사용하고

hash_map 은 정렬이 필요하지않고 많은 자료를 저장하고 빠른 검색을 원할 때 사용한다.

 

map

- 자료를 정렬하여 저장

- 데이터를 순회 할때 넣은 순서가 아닌 정렬된 순서로 순회

- 이진탐색트리 탐색 속도 O(log n) 보장

hash_map

- 자료를 정렬하지 않고 저장

- 배열로 접근 탐색 속도 O(1) 이상

- 많은 자료를 저장하고 있어도 검색이 빠르다.

- 적은 자료를 저장하고 있을 때는 메모리 낭비와 검색 시 오버헤드가 발생한다.

 

컨테이너 추가 삭제

list, vector, deque > hash_map 보다 빠르다

적은 요소를 저장하고 검색

list, vector > hash_map 훨씬 빠르다

 

hash_map은 표준 STL은 아니다.

- STL의 공식 컨테이너에 속하지 않는다.

- 해쉬키가 충돌이 나게 되면 계속 충돌이 발생하여 탐색 성능의 안정성을 보장 못한다.

- c++에서 지원을 하긴 한다.

 

 

 

'프로그래밍 공부 > 궁금한 정보들' 카테고리의 다른 글

SRPG 란?  (0) 2022.03.03
용어 정리  (0) 2022.02.17
if(!) if문 안에 !의 의미  (0) 2022.02.14
C++ 구조체와 클래스 차이  (0) 2022.02.04
문자열 _T 매크로, C++ 리터럴이란  (0) 2018.01.04

+ Recent posts