STL - 21 (hash_map - 2)

Youngmin Choi·2021년 6월 28일
0

STL

목록 보기
21/34
post-thumbnail

1. 연관 컨테이너 종류로는 무잇이 있을까?

  • '연관 컨테이너'로는 map, set, hash_map, hash_set 이 있다.
    이것들은 key로 사용하는 값이 중복되지 않는 때 사용한다.
    만약 중복되는 key를 사용할 때는 컨테이너의 앞에 'mulit'를 붙인 mulit_map, multi_set, hash_mulimap, hash_multiset 을 사용한다. key의 중복 혀용 여부만 다를 뿐 사용방법은 같다!

2. map, set과 hash_map, hash_set의 차이는?

  • 가장 쉽게 알 수 있는 큰 차이는 이름 앞에 'hash'라는 단어가 있느냐 없느냐의 차이이다.
  • map, set 컨테이너는 자료를 정렬하여 저장한다. 그래서 반복자로 저장된 데이터를 순회할 때 넣은 순서로 순회하지 않고 정렬된 순서대로 순회한다. 반면에 hash_map, hash_set은 정렬하지 않으며 자료를 저장한다. 또 hash라는 자료구조를 사용함으로 검색속도가 map, set에 비해 빠르다!

1. map, set을 사용하는 경우 :

정렬된 상태로 자료 저장을 하고 싶을 때!

2. hash_map, hash_set을 사용하는 경우 :

정렬이 필요 없으며 빠른 검색을 원할 때!

3. hash_map, hash_set은 표준은 아니다.

  • map, set은 STL 표준 컨테이너지만 hash_map, hash_set은 표준이 아니다! 그래서 STL 관련 책을 보면 설명이 없는 경우가 있다. 따로 라이브러리를 설치할 필요가 없으며 C++ 컴파일러에서 대부분 지원한다.
  • STL 표준도 아닌 hash_map을 설명하려는 이유는 대부분 C++ 컴파일러에서 지원하고, C++ 표준에서는 정식으로 STL에 들어갈 예정이며(현재는 표준으로 들어간 것 같다!) 현업에서 프로그래밍할 때 아주 유용하게 사용하는 컨테이너이기 때문이다.
profile
Always, Continually, In all circumstance

0개의 댓글