std::multimap
— это ассоциативный контейнер, содержащий отсортированный список пар ключ-значение, допускающий несколько записей с одинаковым ключом. Сортировка выполняется в соответствии с функцией сравнения
Compare
, применяемой к ключам. Операции поиска, вставки и удаления имеют логарифмическую сложность.
Итераторы
std::multimap
проходят элементы в неубывающем порядке ключей, где неубывание определяется сравнением, использованным при построении. То есть, для данных
m
,
std::multimap
it_l
и
it_r
, разыменовываемые итераторы для
m
, причём
it_l
<
it_r
.
m.
value_comp
(
)
(
*
it_r,
*
it_l
)
==
false
(от наименьшего к наибольшему при использовании сравнения по умолчанию).
Порядок пар ключ-значение, чьи ключи сравниваются как эквивалентные, соответствует порядку вставки и не изменяется.
(since C++11)
Везде, где стандартная библиотека использует требования
Compare
, эквивалентность определяется с использованием отношения эквивалентности, как описано в
Compare
. В упрощённых терминах, два объекта
a
и
b
считаются эквивалентными, если ни один из них не меньше другого:
!
comp
(
a, b
)
&&
!
comp
(
b, a
)
.
Все функции-члены
std::multimap
являются
constexpr
: возможно создавать и использовать объекты
std::multimap
при вычислении константного выражения.
Однако, объекты
std::multimap
обычно не могут быть
constexpr
, поскольку любая динамически выделенная память должна быть освобождена в том же вычислении константного выражения.