我知道这个循环的工作原理,以及如何在实际问题中使用它。但我想知道在幕后发生了什么。
我认为这个循环类似于常规的for
循环,例如
for(int i = 0 ; i < 5 ; i ++){
// instructions
}
变量i
只被初始化一次,所以我认为这对于基于范围的循环也是一样的。但是如果我编写以下代码:
for(const int x : vec) {
cout << x << endl;
}
编译器允许我这样做,但我不明白为什么会这样。如果变量 x 是 const,为什么每次迭代的 x 值都不同?
编译器允许这样做,但我不明白为什么可能发生。如果变量 x 是 const,每次迭代 x 的值为何不同?
for (auto iter = vec.begin(); iter != vec.end(); ++iter)
。 - AndyG