std :: map中的最后一个键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了std :: map中的最后一个键相关的知识,希望对你有一定的参考价值。

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

这是保证

map.rbegin()->first

?

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

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

答案

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

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

另一答案

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

另一答案

您可以使用以下方法: -

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

以上是关于std :: map中的最后一个键的主要内容,如果未能解决你的问题,请参考以下文章

如何检测 std::map 循环中的最后一次迭代?

在 std::unordered_map 中使用模板键

使用std shared_ptr作为std :: map键

std::map使用结构体自定义键值

使用 C 类型 uuid_t 作为 std::map 中的键的最佳方法是啥?

如何使用变体作为 unordered_map 中的键?