std :: map中的最后一个键

时间:2008-11-14 10:31:39

标签: c++ iterator stdmap

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

这保证是

map.rbegin()->first

(我对反向迭代器有点不稳定,以及std :: map的实现有多少自由)

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

4 个答案:

答案 0 :(得分:38)

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

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

答案 1 :(得分:23)

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

答案 2 :(得分:6)

您可以使用以下方法: -

int color = dropdown1.getSelectedItemPosition();

答案 3 :(得分:0)

另一种方法-

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