◐ Shell
clean mode source ↗

std::multimap — cppreference.com

Материал из cppreference.com

<tbody> </tbody>

Определено в заголовочном файле <map>

template< class Key, class T, class Compare = std::less<Key>, class Allocator = std::allocator<std::pair<const Key, T>> > class multimap;

(1)

namespace pmr { template< class Key, class T, class Compare = std::less<Key> > using multimap = std::multimap<Key, T, Compare, std::pmr::polymorphic_allocator<std::pair<const Key, T>>>; }

(2) (начиная с C++17)

std::multimap это ассоциативный контейнер, содержащий отсортированный список пар ключ-значение, допускающий несколько записей с одним и тем же ключом. Сортировка производится с функцией сравнения Compare, применяемой к ключам. Операции поиска, вставки и удаления имеют логарифмическую сложность.

Порядок пар ключ-значение, чьи ключи эквивалентны при сравнении, определяется очерёдностью их добавления и не меняется.

(начиная с C++11)

Везде, где стандартная библиотека использует требования Compare, эквивалентность определяется с помощью отношения эквивалентности, как описано в Compare. Говоря неточно, два объекта a и b считаются эквивалентными, если ни один из них не меньше, чем другой при сранении: !comp(a, b) && !comp(b, a).

std::multimap соответствует требованиям Container, AllocatorAwareContainer, AssociativeContainer и ReversibleContainer.

Параметры шаблона

Типы-элементы

Элементы класса

Функции-элементы

создаёт multimap
(public функция-элемент) [править]
уничтожает multimap
(public функция-элемент) [править]
присваивает значения контейнеру
(public функция-элемент) [править]
возвращает связанный аллокатор
(public функция-элемент) [править]
Итераторы
возвращает итератор на начало
(public функция-элемент) [править]

(C++11)

возвращает итератор на конец
(public функция-элемент) [править]
возвращает обратный итератор на начало
(public функция-элемент) [править]
возвращает обратный итератор на конец
(public функция-элемент) [править]
Вместимость
проверяет, пуст ли контейнер
(public функция-элемент) [править]
возвращает количество элементов
(public функция-элемент) [править]
возвращает максимально возможное количество элементов
(public функция-элемент) [править]
Модификаторы
очищает содержимое
(public функция-элемент) [править]
вставляет элементы или узлы (начиная с C++17)
(public функция-элемент) [править]
вставляет ряд элементов
(public функция-элемент) [править]

(C++11)

создаёт элемент на месте
(public функция-элемент) [править]
создаёт элементы на месте, используя подсказку
(public функция-элемент) [править]
удаляет элементы
(public функция-элемент) [править]
обменивает содержимое
(public функция-элемент) [править]

(C++17)

извлекает узлы из контейнера
(public функция-элемент) [править]

(C++17)

сливает с узлами из другого контейнера
(public функция-элемент) [править]
Поиск
возвращает количество элементов, соответствующих определённому ключу
(public функция-элемент) [править]
ищет элемент с определённым ключом
(public функция-элемент) [править]

(C++20)

проверяет, содержит ли контейнер элемент с определённым ключом
(public функция-элемент) [править]
возвращает диапазон элементов, соответствующих определённому ключу
(public функция-элемент) [править]
возвращает итератор на первый элемент не меньший, чем заданный ключ
(public функция-элемент) [править]
возвращает итератор на первый элемент больший, чем заданный ключ
(public функция-элемент) [править]
Наблюдение
возвращает функцию, сравнивающую ключи
(public функция-элемент) [править]
возвращает функцию, которая сравнивает ключи в объектах типа value_type
(public функция-элемент) [править]

Функции, не являющиеся элементами

Примечание

Макрос тест функциональности Значение Стандарт Комментарий
__cpp_lib_containers_ranges 202202L (C++23) Создание и вставка диапазонов для контейнеров

Пример

Отчёты о дефектах

Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:

Номер Применён Поведение в стандарте Корректное поведение
LWG 230 C++98 Key не обязательно должен быть CopyConstructible
(ключ типа Key может быть не создан)
Key также должен быть CopyConstructible