C++11新特性之范围for循环
1.介绍
C++11标准之前,使用for循环遍历数组或容器,只能使用以下结构:
for(表达式1;表达式2;表达式3){
循环体
}
那么在C++11标准中,除了上面的方法外,又引入了一种全新的语法结构,如下所示。
for(declaration:expression){
循环体
}
declaration:此处定义一个变量,类型为要遍历序列中元素的类型。(这里可以使用auto自动推导)。
expression:表示要遍历的序列,常见的例如数组或容器。
#include <iostream>
using namespace std;
int num2[5] = {1, 2, 3, 4, 5};
int main() {
for (int num : num2) {
cout << num << " ";
}
return 0;
}
2.两种遍历方式的异同
相同点:
两种遍历方式都是实现对元素进行逐个访问和处理。
不同点:
(1)传统的for循环语法结构相对复杂,范围for循环语法更加简洁。
(2)传统for循环灵活性更高,能用于更加广泛的场景,实现更加复杂的循环逻辑。范围for循环主要用于简单的序列遍历,其设计初衷就是为了简化常规的遍历操作。(因为用的最多)
(3)在遍历容器时,传统for循环需要使用迭代器访问元素,范围for循环则隐藏了迭代器的细节,直接将容器值赋给变量,使代码更简洁,但也限制了对迭代过程的直接控制。
(4)范围for循环的代码可读性与简洁性更好。
3.总结
在实际使用中,范围for循环常用于简单序列遍历,传统for循环则在处理复杂循环逻辑或直接控制迭代器等方面具有更大优势。可以根据情况选择合适的循环方式。