Je recherche la valeur de clé la plus élevée (définie par l'opérateur de comparaison) d'un std :: map.
Est-ce garanti
map.rbegin()->first
?
(Je suis un peu fragile sur les itérateurs inversés et sur la liberté de mise en œuvre de std :: map)
Sinon, veuillez en informer. Je ne peux pas changer la structure des données.
Oui. La carte est un conteneur trié, l'itérateur inversé doit retourner les éléments dans l'ordre inverse (c'est-à-dire décroissant) de leurs clés.
[Edit: comme le souligne Charles Bailey dans sa réponse, votre code donne la plus grande clé si elle existe - c'est-à-dire si la carte n'est pas vide]
Oui, mais n'oubliez pas de vérifier que map.rbegin() != map.rend()
.
Vous pouvez utiliser la méthode suivante: -
if(!map.empty())
(--map.end())->first;