Что я должен передать аргументу подсчета сегментов unordered_map, если я просто хочу указать хеш-функцию?
C ++ 11unordered_map
Конструктор по умолчанию выглядит так:
explicit unordered_map( size_type bucket_count = /*implementation-defined*/,
const hasher& hash = hasher(),
const key_equal& equal = key_equal(),
const allocator_type& alloc = allocator_type() );
Я хочу создатьunordered_map
с пользовательской функцией хеширования, но этоВторой аргумент для конструктора.
Какое количество ведер я должен использовать? Есть ли волшебное значение, которое я могу использовать, чтобы сказать контейнеру, что он решит сам? Иначе, есть ли эвристика, которую я могу использовать, чтобы угадать хорошее число сегментов, основанное на чем-то вроде количества ключей, которые, как я ожидаю, будет содержать моя карта? Я должен даже заботиться?