Подтвердить что ты не робот

Последний ключ в std:: map

Я ищу наивысшее значение ключа (определенное оператором сравнения) std:: map.

Гарантируется ли это

map.rbegin()->first

?

(Я немного шаткий на обратных итераторах и насколько свободен в реализации std:: map)

Если нет, проконсультируйтесь. Я не могу изменить структуру данных.

4b9b3361

Ответ 1

Да. Карта представляет собой сортированный контейнер, обратный итератор должен возвращать элементы в обратном порядке (то есть уменьшать) их ключей.

[Edit: как указывает Чарльз Бейли в своем ответе, ваш код дает наибольший ключ , если он существует - то есть если карта не пуста]

Ответ 2

Да, но не забудьте проверить, что map.rbegin() != map.rend().

Ответ 3

Вы можете использовать следующий метод: -

if(!map.empty())
    (--map.end())->first;