Я предполагаю, что вы ищете алгоритм поиска, чтобы найти ключ в std::multimap
, который
гарантирует O(log n)
, чтобы найти любой ключ в multimap
из n
ключей
гарантирует O(1)
найти ключ, который является наибольшим ключом, удерживаемым multimap
Существуетнет такой вещи встроенной.Большинство (все?) Мультикарты реализованы в виде сбалансированных деревьев, и вызов multimap::find()
сначала проверяет середину карты, поскольку именно там находится корень дерева.Вы сами можете убедиться, что вы реализуете шум operator<
.
Будет ли просто проверка ключа, на который указывает rbegin()
перед вызовом multimap::find()
, удовлетворить ваши требования?
Если от "lastвставлено: «Вы действительно имели в виду элемент, который был добавлен на карту самым последним, тогда его вообще невозможно найти, multimap
и другие ассоциативные контейнеры не сохраняют информацию о порядке вставки.