Range-based for statement

文章目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
for( decl : coll) {
statement
}
*/
for(int i: {2345676788}) {
cout<<i<<endl;
}

vector<double> vec;
for(auto elem: vec) {
cout<< elem <<endl;
}

for(auto& elem: vec) {
elem *= 3;
}// 关联式容器不能修改值

No explicit type conversions are possible when elements are initialized as decl inside the for loop. Thus, the following does not compile:

1
2
3
4
5
6
7
8
9
10
class C {
public:
explicit C(const string& s);
....
};

vector<string> vs;
for(const C& elem: vs) { // error no conversion from string to C defined
cout<<elem<<endl;
}