小编Now*_*Man的帖子

嵌套for循环和重复迭代器

考虑以下嵌套for循环.我无法弄清楚为什么当内部for循环退出时,外部for循环尝试增加迭代器,但显然它不应该这样做.这导致了seg故障.如果具有条件,为什么外部for循环将继续运行cbeg != vec.cend().显然,在内for循环中检查条件没有问题,并且它正确退出.

我不相信任何迭代器在这里被无效,唯一的操作是增量.

vector<int> vec{1,2,3,4};

for (auto cbeg = vec.cbegin(); cbeg != vec.cend(); cbeg++)
{
   for (; cbeg != vec.cend(); cbeg++) {
   }
}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

c++ c++11

0
推荐指数
1
解决办法
67
查看次数

标签 统计

c++ ×1

c++11 ×1