Std :: mapの最も高いキー値(比較演算子によって定義されたもの)を探しています。
これは保証されていますか
map.rbegin()->first
?
(私はリバースイテレーターについて少し不安定で、std :: mapの実装にどれだけの自由があるか)
そうでない場合は、アドバイスしてください。データ構造を変更できません。
はい。マップはソートされたコンテナであり、逆反復子はキーの逆(つまり、降順)の順序で要素を返す必要があります。
[編集:Charles Baileyが彼の回答で指摘しているように、あなたのコードは最大のキーを提供します存在する場合-つまり、マップが空でない場合]
はい、ただしmap.rbegin() != map.rend()
を確認してください。
次の方法を使用できます:-
if(!map.empty())
(--map.end())->first;