Skip to content

范围for语句

C++中的范围for语句最初是在C++ 11中引入的。范围for语句允许你在循环中迭代一个范围,并在每次迭代时执行一些操作。这种语法在C++ 11中被称为“range-based for loop”,并且在C++ 17中被标准化为“for range”。

语法一

cpp
int arr[] = {11, 22, 33, 44, 55};
for(auto x:arr){	
    //这种方式有一个问题,每次x都需要拷贝arr中的值,可以将x改为&x以提高性能
    cout << x << " ";
}
cout << endl;

语法二

cpp
for(auto x:{11, 22, 33, 44, 55}){
    cout << x << " ";
}
cout << endl;

注意

在使用范围for语句遍历容器的时间,千万不要改变容器的容量(插入和删除都不可以),千万不要写出这种代码,否则会产生难以排查的bug。

如果是自定义类,范围for语句是调用类中的begin和end获取迭代器来实现的,可以通过 自定义string类 来进行观察。