Last key in a std::map

被刻印的时光 ゝ 提交于 2019-11-30 00:06:51

问题


I am looking for the highest key value (a defined by the comparison operator) of a std::map.

Is this guaranteed to be

map.rbegin()->first

?

(I am a bit shaky on reverse iterators, and how much freedom there is in the implementation of std::map)

If not, please advise. I cannot change the data structure.


回答1:


Yes. Map is a sorted container, the reverse iterator must return the elements in reverse (i.e. decreasing) order of their keys.

[Edit: as Charles Bailey points out in his answer, your code gives the greatest key if it exists - i.e. if the map is non-empty]




回答2:


Yes, but remember to check that map.rbegin() != map.rend().




回答3:


You can use following method :-

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


来源:https://stackoverflow.com/questions/289715/last-key-in-a-stdmap

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!