如何解决为什么 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
是整个迭代过程中的每个值,而不是索引。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。