range-for

range-for

for 循环中轻松地遍历容器(vectorsetlist 等):

vector<int>v={5,1,3,4,2};
for(int x : v)cout<<x<<' ';
//output:5 1 3 4 2
//按顺序遍历 v 中的每一个元素,并赋值给 x。

也可以将 xx 声明为引用:

vector<int>v(n);
for(int &x : v )cin>>x;
//读入一个长度为 n 的序列

注意,xx 的类型必须与 vv 中元素的类型保持一致,否则会 CE。

也可以使用 auto 进行声明。

vector<int>v={5,1,3,4,2};
for(auto &x : v)cout<<x<<' ';
//output:5 1 3 4 2
//按顺序遍历 v 中的每一个元素,并赋值给 x。

注意,若遍历数组,那将从头到尾遍历一遍,不推荐。

用处极为广泛,常用于对于 vector 存图的遍历等。

超前用法:

在for-each前可以添加一个表达式,如初始化,输出内等等,有很多开发空间

vector<int>vec={5,1,3,4,2};
for (constexpr int g = 7; const auto &i: vec)
    {
            cout << i << g;
    }
//output:17 27 37 47 57 57 67 27 
//初始化一个int类型g,并不断遍历vec中的元素以输出

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部