2008-11-14 87 views
26

我正在尋找std :: map的最高鍵值(由比較運算符定義)。std :: map中的最後一個鍵

是這個保證是

map.rbegin()->first 

(我是反向迭代器有點不穩,並且在性病::地圖的實現多少自由)

如果不是,請告知。我無法改變數據結構。

回答

32

是的。 Map是一個已排序的容器,反向迭代器必須以相反(即遞減)的順序返回其元素的元素。

[編輯:查爾斯·貝利在他的回答中指出,你的代碼給人最大的關鍵如果存在 - 即如果地圖不爲空]

20

是的,但記得要檢查map.rbegin() != map.rend()

+0

map.size()> 0應該這樣做,太,對不對? – peterchen 2008-11-14 12:33:25

5

你可以用下面的方法: -

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