<分区>
我对“'iter' 未在此范围内声明”错误感到困惑。
#include <vector>
using std::vector;
int main()
{
vector<int> vec{1,2,3,4,5,6};
for(std::size_t i,vector<int>::iterator iter=vec.begin();iter!=vec.end();++i,++iter)
{
//do something
}
}
<分区>
我对“'iter' 未在此范围内声明”错误感到困惑。
#include <vector>
using std::vector;
int main()
{
vector<int> vec{1,2,3,4,5,6};
for(std::size_t i,vector<int>::iterator iter=vec.begin();iter!=vec.end();++i,++iter)
{
//do something
}
}
最佳答案
只要你能做到
int a = 10, b = 20;
for 循环的第一部分做同样的事情。既然你做不到
int a = 10, double b = 20;
同样的事情也适用于 for 循环。
从技术上讲,您可以拥有两种不同的类型,因为您可以在同一行中声明一个类型和一个指向相同类型的指针,例如
int i = 0, *b = nullptr;
这在 for 循环中也是有效的。
关于c++ - 为什么 for 循环不能定义两个范围的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49301540/