【发布时间】:2016-12-02 15:10:12
【问题描述】:
可能非常简单,但我无法理解它的atm
我有这个
// standard std::map and std::map::iterator
auto pos = map.find(val);
for(auto it = map.begin; it != pos; ++it)
我想搜索一个元素,然后处理之前的所有元素(容器是有序的,所以只是按迭代顺序)并包括查找位置,但这似乎不会检查位置“pos”处的最终元素。我怎样才能做到这一点?
【问题讨论】:
-
如果您使用
do-while循环,则在循环体之后而不是之前检查条件。 -
if(pos != map.end()) //process pos here? -
map.begin() 不要忘记 ()
-
不应该是
for(auto it = map.begin(); it != pos; ++it)另外没有检查返回的it是否不等于map.end()