我有一个std::map<int, object>。
如果地图包含:
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 )?我希望使用这些值来获得输出,例如:
std::pair<6, obj3>
std::pair<8, obj3>
std::pair<9, obj3>或者,还有其他容器可以这样做吗?我不想使用向量,因为在我的程序中,实际上包含值的键之间可能存在很大的差距,例如,当只有几个项时,我不想遍历数千个空索引。
发布于 2016-10-02 23:43:34
您可以使用lower_bound()和upper_bound()方法的std::map来定位迭代器的给定键的最近值。有关这些方法如何工作的文档,请参阅您的C++书籍。
一旦为最近的键获得迭代器,就可以像往常一样进行迭代。
https://stackoverflow.com/questions/39822833
复制相似问题