[C++] STL 해쉬맵(unordered_map)
카테고리: Cpp
태그: STL
이 글은 C++ STL 해쉬맵(unordered_map)을 공부하고 정리한 글입니다.
STL 해쉬맵(unordered_map)은 정렬되지 않는 맵(map)이다.
unordered_map
- 키와 값의 쌍(pair)들을 저장
- 키는 중복 불가
- 자동으로 정렬되지 않는 컨테이너
- 요소는 해쉬 함수가 생성하는 색인(index) 기반의 버킷(bucket)들로 구성됨
- 해쉬맵(hashmap)이라고도 함
코드 예제
#include <iostream> #include <string> #include <unordered_map> int main() { std::unordered_map<std::string, int> scores; scores["Nana"] = 60; scores["Mocha"] = 70; scores["Coco"] = 100; scores["Ari"] = 40; scores["Chris"] = 90; for (size_t i = 0; i < scores.bucket_count(); ++i) { std::cout << "Bucket #" << i << ": "; for (auto it = scores.begin(i); it != scores.end(i); ++it) { std::cout<< " " << it->first << ":" << it->second; } std::cout << std::endl; } return 0; }
해쉬 충돌
- 가끔 키가 다른데도 같은 해쉬 값이 나옴
- 이럴 경우, 하나의 버킷에 둘 이상의 데이터가 들어감
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기