簡體   English   中英

std::map 中的最后一個鍵

[英]Last key in a std::map

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

這是否保證是

map.rbegin()->first

?

(我對反向迭代器有點不穩定,在 std::map 的實現中有多少自由度)

如果沒有,請指教。 我無法更改數據結構。

是的。 Map 是一個已排序的容器,反向迭代器必須以它們的鍵的反向(即降序)順序返回元素。

[編輯:正如查爾斯·貝利 (Charles Bailey) 在他的回答中指出的那樣,如果存在,您的代碼會給出最大的鍵 - 即如果地圖不為空]

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

您可以使用以下方法:-

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

還有一種方式——

std::prev(map.end())->first;

Map 按排序順序存儲鍵值對,以便我們可以通過以下方式訪問最后一個元素:-

auto it=m.end();
it--;
int element=it->first;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM