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