c++ - 不包含密钥时的 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。
解决方案
根据标准,它们都以对数时间运行,并且映射是否包含密钥并不重要。如果性能存在差异,则将是特定于平台的。
推荐阅读
- matlab - 如何根据变量标题的正则表达式在Matlab中索引表?
- swiftui - List SwiftUI 中的每行是否可以有多个 NavigationLink?
- c# - 为什么没有触发 CollectionChanged 的订阅事件?
- javascript - window.onload = function() 没有显示完整的味精
- javascript - 案例陈述一次提出多个警报
- javascript - 如何从所有 JSON 值中删除引号,并且不删除 Node JS 中 JSON 键中的引号
- php - 未找到 Magento2 控制器,使用 composer 自动加载命名空间
- c# - 如何在 2D int 数组中找到组区域
- ios - 如何在 iOS 中更新 collectionView?
- c# - Unity 和 C#,事件注册失败。没有给出与所需形式参数相对应的参数