【发布时间】:2015-06-27 18:56:28
【问题描述】:
例如,如果我的地图是从整数到双精度并且包含:
- 2 -> 3.4
- 3 -> 87.3
- 5 -> 0.0
- 12 -> 43.4
当我搜索 4 时,我必须获得 87.3,因为 3 是地图中最近的较小键。当我搜索 11 时,我必须得到 0.0。
这可以通过平衡树来完成。但我不想实现平衡树,可能有办法直接使用 STL 做到这一点?
【问题讨论】:
标签: c++ dictionary stl tree
例如,如果我的地图是从整数到双精度并且包含:
当我搜索 4 时,我必须获得 87.3,因为 3 是地图中最近的较小键。当我搜索 11 时,我必须得到 0.0。
这可以通过平衡树来完成。但我不想实现平衡树,可能有办法直接使用 STL 做到这一点?
【问题讨论】:
标签: c++ dictionary stl tree
这可以通过std::map::lower_bound 完成。根据地图的确切状态,您可能需要减少迭代器(以获取实际更小的元素)。
在任何情况下,总体复杂度都是对数的。
【讨论】: