考虑以下嵌套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)
我在这里错过了什么?