На собеседованиях меня периодически спрашивают, что делать если количество данных вставляемых в
unordered_map неизвестно заранее. Т.е. подобрать контейнер необходимого размера заранее нельзя и rehash
будет вызываться неопределенное число раз, что отрицательно сказывается на производительности.
Очевидно ожидается какой-то стандартный ответ, какой именно?
Здравствуйте, steep8, Вы писали:
S>На собеседованиях меня периодически спрашивают, что делать если количество данных вставляемых в S>unordered_map неизвестно заранее. Т.е. подобрать контейнер необходимого размера заранее нельзя и rehash S>будет вызываться неопределенное число раз, что отрицательно сказывается на производительности. S>Очевидно ожидается какой-то стандартный ответ, какой именно?
Здравствуйте, steep8, Вы писали:
S>На собеседованиях меня периодически спрашивают, что делать если количество данных вставляемых в S>unordered_map неизвестно заранее. Т.е. подобрать контейнер необходимого размера заранее нельзя и rehash S>будет вызываться неопределенное число раз, что отрицательно сказывается на производительности. S>Очевидно ожидается какой-то стандартный ответ, какой именно?
А и пофиг, вот наш стандартный ответ.
Если стратегия рехеша — удваивать число корзин при достижении max_load_factor, то это даст усреднённый вклад O(1) на вставку одного элемента.
Так же, как с push_back в вектор.