首页 > 解决方案 > 不包含密钥时的 std::map::lower_bound 或 std::map::upper_bound ?

问题描述

如果我很好理解,在给定的地图中m:如果我想找到大于或等于给定键的第一个键k,我使用m.lower_bound(k). 如果我想找到严格大于给定键的第一个键k,我使用m.upper_bound(k).

如果我仍然很好理解,如果 keyk尚未包含在 map 中,则没有区别m在这种特定情况下(我知道我的地图不包含密钥),是否有任何理由选择其中一个?有一个比另一个快吗?

注意:出于兼容性原因,我不使用 C++11/14/17。

标签: c++stdmapc++03

解决方案


根据标准,它们都以对数时间运行,并且映射是否包含密钥并不重要。如果性能存在差异,则将是特定于平台的。


推荐阅读