c ++ unordered_map обработка коллизий, изменение размера и перефразировка

Я не читал стандарт C ++, но я чувствую, что unordered_map в c ++ предполагает работу.

Выделите блок памяти в куче.С каждым положенным запросом, хэшируйте объект и сопоставляйте его с пробелом в этой памятиВо время этого процесса выполняйте обработку столкновений с помощью цепочки или открытой адресации.

Я весьма удивлен, что не смог найти много о том, как обрабатывается память unordered_map. Есть ли конкретный начальный размер памяти, который выделяет unordered_map. Что произойдет, если, скажем, мы выделили 50 int памяти и в итоге вставили 5000 целых чисел?

Это будет много коллизий, поэтому я считаю, что должен быть своего рода алгоритм повторного хеширования и изменения размера для уменьшения количества коллизий после достижения определенного уровня порога коллизий. Поскольку они явно предоставлены классу как функции-члены, я предполагаю, что они также используются внутри. Есть ли такой механизм?

Ответы на вопрос(2)

Ваш ответ на вопрос