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: 버킷 개수를 직접 지정해요