之前在用for循环时,每次都要写条件,并不是很方法。
1 2 3 4 5 |
double a[5] = {1,2,3,4,5}; for(int i=0;i<5;i++){ cout<<a[i]<<endl; } |
在C++11中for循环还可以用于基于范围循环,可以将上面for循环代码改写:
1 2 3 4 5 |
double a[5] = {1,2,3,4,5}; for(double x : a){ cout<<x<<endl; } |
两段for循环代码实现一样功能,但第二段for循环代码更简单。
第二段for循环中double换成C++11 auto关键字
1 2 3 4 5 |
double a[5] = {1,2,3,4,5}; for(auto x : a){ cout<<x<<endl; } |
这样在编写代码时会更方便,特别是在用于容器类时。
1 2 3 4 5 |
vector<ET> Va{"","",""}; for(auto x : Va){ cout<<x<<endl; } |
以上都是直接输出元素,没有修改元素值。如果要修改元素值可以将for循环内作下修改就可以,将x改成引用类型&x;
1 2 3 4 5 |
vector<ET> Va{"","",""}; for(auto &x : Va){ x = ""; } |