В приведенном ниже примере i имеет область действия. Но, похоже, я не могу использовать i во втором цикле. Почему for (i : v1) не работает, но работает for (int i : v1)?
#include<iostream>
#include<string>
#include<vector>
int main()
{
std::vector<int> v1;
int i;
while(std::cin>>i)
{
v1.push_back(i);
}
for(i : v1) //for (int i:v1) works
std::cout<<i<<"\t";
cout<<std::endl;
return 0;
}