![](/img/trans.png)
[英]In std::map, get an iterator pointing to the LAST element that is NOT GREATER than key
[英]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.