当前位置:  开发笔记 > 编程语言 > 正文

std :: map中的最后一个键

如何解决《std::map中的最后一个键》经验,为你挑选了3个好方法。

我正在寻找std :: map的最高键值(由比较运算符定义).

这是保证

map.rbegin()->first

(我在反向迭代器上有点不稳定,在std :: map的实现中有多少自由度)

如果没有,请告知.我无法改变数据结构.



1> Steve Jessop..:

是.Map是一个已排序的容器,反向迭代器必须以反向(即递减)键的顺序返回元素.

[编辑:正如Charles Bailey在他的回答中指出的那样,如果存在,你的代码会给出最大的密钥- 即如果地图是非空的]



2> CB Bailey..:

是的,但请记得检查一下map.rbegin() != map.rend().


...而.empty()保证为O(1).(只是为了澄清安德烈亚斯所说的)

3> birubisht..:

您可以使用以下方法: -

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

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有