Как ведет себя std::unordered_map?C++

Программы на C++. Форум разработчиков
Anonymous
Как ведет себя std::unordered_map?

Сообщение Anonymous »

Я читал о C++ unordered_map, и у меня есть несколько вопросов, на которые я не могу четко ответить.
Я заметил, что unordered_map помещает один элемент в каждый индекс, а не несколько (хеш-таблицы могут быть реализованы с использованием одного из этих методов для решения двух элементов, сопоставленных с одним и тем же индексом)
  • Если в карте есть элемент с ключом A, и я вставляю другой, он переопределит предыдущий элемент, верно? (независимо от того, совпадают значения или нет).
  • Есть ли возможность изменить поведение unordered_map, чтобы он мог содержать несколько элементов по индексу, как я объяснил выше?
  • Я заметил из своего кода, что unordered_map увеличивается на единицу каждый раз, когда я вставляю новый элемент, но это очень плохо, я узнал из хеш-таблицы, что нам нужно каждый раз умножать размер на 2 время, когда это необходимо, поэтому сложность вставки составляет O (1), амортизированная, а не O (n).
  • Как я могу придать моей unordered_map начальный размер, но без элементов? т. е. я знаю, что он достигнет размера 1000, поэтому вместо многократного увеличения и тяжелого копирования мы можем сделать это напрямую.


Подробнее здесь: https://stackoverflow.com/questions/701 ... ap-behaves

Вернуться в «C++»