- hash_map의 자료구조는 해시 테이블 이다. 해시 테이블에 자료를 저장할 때는 Key 값을 해시 함수에 대입하여 버킷 번호가 나오면 그 버킷의 빈 슬롯에 자료를 저장한다.
- hash_map을 사용하는 경우
1. 많은 자료를 저장하고, 검색 속도가 빨라야 한다.
2. 너무 빈번하게 자료를 삽입, 삭제 하지 않는다.
- hash 라는 단어가 있느냐 없느냐의 차이다. 'hash'는 정말 큰 차이다.
- map과 set 컨테이너는 자료를 정렬하여 저장한다. 그래서 반복자로 저장된 데이터를 순회할 때 넣은 순서로 순회하지 않고 정렬된 순서대로 순회한다.
- hash_map, hash_set은 정렬 하지 않으며 자료를 저장한다. 또 hash라는 자료구조를 사용함으로 검색 속도가 map, set에 비해 빠르다.
- map, set을 사용하는 경우 : 정렬된 상태로 자료 저장을 하고 싶을 때.
- hash_map, hash_set : 정렬이 필요 없으며 빠른 검색을 원할 때.
출처: https://gamdekong.tistory.com/73 [not to be programmer. to be the one]
'Data Structure' 카테고리의 다른 글
[C++] stl priority_queue와 heap (0) | 2021.06.03 |
---|---|
[C++] stl map (0) | 2021.05.31 |
링크드 리스트(Linked List) (0) | 2021.01.19 |
스택(stack) (0) | 2021.01.15 |
큐(queue) (0) | 2021.01.14 |