【发布时间】:2011-07-21 13:48:47
【问题描述】:
在Java 中,您可以拥有NavigableMap,它可以让您做一些有用的事情,例如“找到小于或等于给定值的最大键”(floorKey 方法)。所以如果myMap包含{1->"One", 2->"Two", 3->"Three", 7->"Seven"},你可以调用myMap.floorKey(6),它会返回@的key 987654325@.
在 C++ 中,STL 提供了一个map 类,默认情况下它根据键值升序对条目进行排序。这很好,但是我怎样才能在 C++ 中做类似于 floorKey 的事情呢?到目前为止我发现的所有参考资料都建议您必须手动进行(即定义一个迭代器,收敛于键 - 最好使用二进制搜索,然后找到下一个较低的键)。是否有广泛可用的库函数来执行此操作?
【问题讨论】: