范围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类 来进行观察。