如何调整地图以找到最近的较小物体?

时间:2015-06-27 18:56:28

标签: c++ dictionary stl tree

例如,如果我的地图是从整数到双精度并且包含:

  • 2 - > 3.4
  • 3 - > 87.3
  • 5 - > 0.0
  • 12 - > 43.4

当我搜索4时,我必须得到87.3,因为3是地图中最近的小键。当我搜索11时,我必须获得0.0。

这可以通过平衡树来完成。但我不希望实现一个平衡的树,可能有一种方法直接使用STL吗?

1 个答案:

答案 0 :(得分:5)

可以使用std::map::lower_bound完成此操作。根据映射的确切状态,您可能需要递减迭代器(以使元素实际上更小)。

在任何情况下,整体复杂性都是对数。