То же, что и для set
: класс должен иметь строгий порядок в духе «меньше». Либо перегрузите соответствующий operator<
, либо создайте собственный предикат. Любые два объекта a
и b
, для которых !(a<b) && !(b>a)
будут считаться равными.
Контейнер карты фактически сохранит все элементы в порядке, предусмотренном этим заказом, что и можно достичь O (log n) и время вставки по значению ключа.