首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使边界键不存在,我也可以遍历std::map键范围吗?

即使边界键不存在,我也可以遍历std::map键范围吗?
EN

Stack Overflow用户
提问于 2016-10-02 23:39:40
回答 1查看 85关注 0票数 0

我有一个std::map<int, object>

如果地图包含:

代码语言:javascript
运行
复制
std::pair<1, obj1>
std::pair<3, obj2>
std::pair<4, obj3>
std::pair<6, obj4>
std::pair<8, obj5>
std::pair<9, obj6>
std::pair<14, obj7>

可以从不存在的键(例如i=5..10 )遍历这个映射(考虑到映射中实际上没有任何键5和10 )?我希望使用这些值来获得输出,例如:

代码语言:javascript
运行
复制
std::pair<6, obj3>
std::pair<8, obj3>
std::pair<9, obj3>

或者,还有其他容器可以这样做吗?我不想使用向量,因为在我的程序中,实际上包含值的键之间可能存在很大的差距,例如,当只有几个项时,我不想遍历数千个空索引。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-02 23:43:34

您可以使用lower_bound()upper_bound()方法的std::map来定位迭代器的给定键的最近值。有关这些方法如何工作的文档,请参阅您的C++书籍。

一旦为最近的键获得迭代器,就可以像往常一样进行迭代。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39822833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档