[C++] STL 해쉬맵(unordered_map)

Date:     Updated:

카테고리:

태그:

이 글은 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;
    }
    

    해쉬 충돌

    • 가끔 키가 다른데도 같은 해쉬 값이 나옴
    • 이럴 경우, 하나의 버킷에 둘 이상의 데이터가 들어감


참조

포큐아카데미 C++ 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기