我正在寻找std :: map的最高键值(由比较运算符定义)。
这保证是
map.rbegin()->first
?
(我对反向迭代器有点不稳定,以及std :: map的实现有多少自由)
如果没有,请告知。我无法改变数据结构。
答案 0 :(得分:38)
是。 Map是一个已排序的容器,反向迭代器必须以反向(即递减)顺序返回元素。
[编辑:正如Charles Bailey在答案中指出的那样,你的代码会提供最大的密钥如果它存在 - 即如果地图是非空的话]
答案 1 :(得分:23)
是的,但请记得检查map.rbegin() != map.rend()
。
答案 2 :(得分:6)
您可以使用以下方法: -
int color = dropdown1.getSelectedItemPosition();
答案 3 :(得分:0)
另一种方法-
std::prev(map.end())->first;