Главное различие в том, как элементы хранятся и извлекаются:
std::map
: Хранит элементы в отсортированном порядке ключей. Обычно реализуется на основе красно-черного дерева. Поиск, вставка и удаление имеют логарифмическую сложность O(log N), где N — количество элементов.std::unordered_map
: Хранит элементы в хэш-таблице. Порядок элементов произвольный. В среднем, поиск, вставка и удаление имеют константную сложность O(1). В худшем случае, при наличии коллизий, сложность может достигать O(N).Признак | std::map | std::unordered_map |
---|---|---|
Упорядоченность | По ключу (возрастание) | Нет |
Базовая структура | Красно-черное дерево | Хэш-таблица |
Средняя сложность | O(log N) | O(1) |
Худшая сложность | O(log N) | O(N) |
Требования к ключу | Оператор < |
Главное различие в том, как элементы хранятся и извлекаются:
std::map
: Хранит элементы в отсортированном порядке ключей. Обычно реализуется на основе красно-черного дерева. Поиск, вставка и удаление имеют логарифмическую сложность O(log N), где N — количество элементов.std::unordered_map
: Хранит элементы в хэш-таблице. Порядок элементов произвольный. В среднем, поиск, вставка и удаление имеют константную сложность O(1). В худшем случае, при наличии коллизий, сложность может достигать O(N).Признак | std::map | std::unordered_map |
---|---|---|
Упорядоченность | По ключу (возрастание) | Нет |
Базовая структура | Красно-черное дерево | Хэш-таблица |
Средняя сложность | O(log N) | O(1) |
Худшая сложность | O(log N) | O(N) |
Требования к ключу | Оператор < |
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.