为什么C++中循环迭代器的范围从1而不是0开始?

在 C++ 中,为什么range-for-loop从 1 开始而不是从 0 开始迭代?在这个例子中,你会期望它能够很好地迭代数字,但是它遇到了越界错误,因为 i 从 1 开始,以向量的大小结束。

vector<int> numbers2 = { 1,2,3,4,5 };
cout << numbers2.size() << 'n';

for (int i : numbers2) {
    cout << numbers2[i] << endl;
    cout << i << endl;
}

要正确计算结果,必须重新编写

cout << numbers2[i - 1] << endl;

回答

基于范围的 for 循环遍历向量的值,没有索引。您正在遍历{1, 2, 3, 4, 5}向量,并且i是整个迭代中的每个值而不是索引。


以上是为什么C++中循环迭代器的范围从1而不是0开始?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>