Как ведет себя 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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