59

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

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

map.rbegin()->first

(私は逆イテレータに少し不安があり、std :: mapの実装にはどれだけの自由がありますか)

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

4

5 に答える 5

60

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

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

于 2008-11-14T10:45:12.080 に答える
31

はい。ただし、確認することを忘れないでくださいmap.rbegin() != map.rend()

于 2008-11-14T11:28:03.320 に答える
17

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

if(!map.empty())
    (--map.end())->first;
于 2016-11-22T04:56:15.780 に答える
7

もう一つの方法 -

std::prev(map.end())->first;
于 2020-11-15T04:06:22.640 に答える