unordered_map_reserve

unordered_map_reserve (std::unordered_map::reserve — 공간 확보)

std::unordered_map이 주어진 원소 개수를 담을 수 있도록 재해시하는 멤버 함수예요.

출처: cppreference

본문

시그니처는 다음과 같아요.

void reserve( size_type count );

count개의 원소를 부하율 제한 안에서 수용할 수 있도록 버킷 개수를 설정해요. rehash(std::ceil(count / max_load_factor()))를 호출하는 것과 동등해요.

이 함수는 버킷이 부족해져서 발생하는 재해시를 미리 방지하는 데 유용해요. 원소를 대량 삽입할 것으로 예상될 때 미리 호출하면 좋아요.

매개변수

  • count: 수용하고자 하는 원소 개수.

복잡도

선형(linear) 예상, 최악 O(N²).

예제

#include <iostream>
#include <unordered_map>
int main()
{
    std::unordered_map<int, char> m;
    m.reserve(1000);   // 1000개를 담을 수 있게 미리 확보
    std::cout << m.bucket_count() << '\n';
}

함께 보기

  • rehash: 버킷 개수를 직접 지정해요

더 알아보기 (Learn more)

cppreference