一、range for语句可以用来干啥?
range for语句用于遍历序列。这些序列有具有迭代器成员的容器、内置数组,初始化列表三种情况。
二、如何使用
C++11后开始支持范围for语句,他是一种通用的语法,比如说python中的:
for iterating_var in sequence:
statements(s)
相应的C++语法为:
for(容器元素类型 容器中元素临时变量:容器)
{
statements;
}
2.1 初始化列表遍历
for(auto ele:{1,2,3,5,3,6,2})
{
cout<<ele<<endl;
}
2.2 容器遍历
set<int> iset(1,2,3,3,434,3,22,2);
for(auto ele:iset)//推荐用这种方式
{
cout<<ele<<endl;
}
for(set<int>::value_type ee:iset)
{
cout<<ee<<endl;
}
2.3 内置数组遍历
int arr[]={1,2,3,4,44443,2,43};
for(auto r:arr)
{
cout<<r<<endl;
}
2.4 注意事项
- 如果要遍历改变每一个值,请使用
auto &r
定义一个引用 - 遍历过程中不允许改变元素的个数,因为迭代器失效了