std::map
- это ассоциативный контейнер, который хранит элементы, состоящие из пары ключ-значение, отсортированные по ключу.
Основные характеристики:
Внутреннее устройство (красно-чёрное дерево):
Каждый узел дерева хранит:
std::pair<const Key, T>
). Ключ константный, чтобы избежать его изменения и сохранения свойства упорядоченности.Свойства красно-чёрного дерева, поддерживаемые при операциях вставки и удаления с помощью вращений и перекрашиваний, обеспечивают логарифмическую высоту дерева и, как следствие, логарифмическую сложность операций.
Операции:
operator[]
: Доступ по ключу. Если ключ не найден, вставляет новый элемент с ключом и значением по умолчанию для типа значения.at()
: Доступ по ключу. Если ключ не найден, бросает исключение std::out_of_range
.insert()
: Вставляет новый элемент-пару. Игнорирует вставку, если ключ уже существует.erase()
: Удаляет элемент поstd::map
- это ассоциативный контейнер, который хранит элементы, состоящие из пары ключ-значение, отсортированные по ключу.
Основные характеристики:
Внутреннее устройство (красно-чёрное дерево):
Каждый узел дерева хранит:
std::pair<const Key, T>
). Ключ константный, чтобы избежать его изменения и сохранения свойства упорядоченности.Свойства красно-чёрного дерева, поддерживаемые при операциях вставки и удаления с помощью вращений и перекрашиваний, обеспечивают логарифмическую высоту дерева и, как следствие, логарифмическую сложность операций.
Операции:
operator[]
: Доступ по ключу. Если ключ не найден, вставляет новый элемент с ключом и значением по умолчанию для типа значения.at()
: Доступ по ключу. Если ключ не найден, бросает исключение std::out_of_range
.insert()
: Вставляет новый элемент-пару. Игнорирует вставку, если ключ уже существует.erase()
: Удаляет элемент поЗарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.