不包含密钥时,std :: map :: lower_bound或std :: map :: upper_bound?

时间:2018-11-13 12:52:53

标签: c++ stdmap c++03

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

如果我仍然很了解,则键{{1​​}}尚未包含在地图k中也没有区别。 在这种情况下(我知道我的地图不包含密钥),是否有任何理由选择一个?有一个比另一个更快吗?

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

1 个答案:

答案 0 :(得分:1)

根据标准,它们都在对数时间内运行,并且您的地图是否包含密钥并不重要。如果性能存在差异,则取决于平台。