for(const auto & i : v) cout<<i;
其中的const,&,都有什么用
总结,auto 加了&才能修改原来v中的数,加了const以后不能修改,会直接报错,如果const也不加,&也不加,不能修改而且不会报错
#include <bits/stdc++.h>
using namespace std;
int main() {
vector <int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
for(const auto &i:v) cout<<i;
// err for(const auto &i:v) i++;
for(const auto &i:v) cout<<i;
cout<<endl;
for( auto &i:v) i++; //能够修改原来的v
for(const auto &i:v) cout<<i;
cout<<endl;
for( auto i:v) i++; //不能修改原来的v
for(const auto &i:v) cout<<i;
cout<<endl;
return 0;
}
小bug
#include <bits/stdc++.h>
using namespace std;
int main() {
vector <int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
for(const auto &i:v) cout<<v[i];
cout<<endl;
return 0;
}
这段代码的输出结果居然是2340?? 而不是预期的1234,因为他妈的 你应该输出 i 而不是v[i]