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