Последний ключ в std:: map
Я ищу наивысшее значение ключа (определенное оператором сравнения) std:: map.
Гарантируется ли это
map.rbegin()->first
?
(Я немного шаткий на обратных итераторах и насколько свободен в реализации std:: map)
Если нет, проконсультируйтесь. Я не могу изменить структуру данных.
Ответы
Ответ 1
Да. Карта представляет собой сортированный контейнер, обратный итератор должен возвращать элементы в обратном порядке (то есть уменьшать) их ключей.
[Edit: как указывает Чарльз Бейли в своем ответе, ваш код дает наибольший ключ , если он существует - то есть если карта не пуста]
Ответ 2
Да, но не забудьте проверить, что map.rbegin() != map.rend()
.
Ответ 3
Вы можете использовать следующий метод: -
if(!map.empty())
(--map.end())->first;