web-dev-qa-db-ja.com

std :: mapの最後のキー

Std :: mapの最も高いキー値(比較演算子によって定義されたもの)を探しています。

これは保証されていますか

map.rbegin()->first

(私はリバースイテレーターについて少し不安定で、std :: mapの実装にどれだけの自由があるか)

そうでない場合は、アドバイスしてください。データ構造を変更できません。

43
peterchen

はい。マップはソートされたコンテナであり、逆反復子はキーの逆(つまり、降順)の順序で要素を返す必要があります。

[編集:Charles Baileyが彼の回答で指摘しているように、あなたのコードは最大のキーを提供します存在する場合-つまり、マップが空でない場合]

45
Steve Jessop

はい、ただしmap.rbegin() != map.rend()を確認してください。

26
CB Bailey

次の方法を使用できます:-

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