基于范围的 for 循环(Range-based for loop)是 C++11 引入的一种循环结构,用于遍历容器、数组和其他支持迭代器或 begin/end 函数的对象。
基于范围的 for 循环提供了一种更简洁和直观的语法,使遍历容器的代码更加清晰和易于阅读。它能够自动迭代容器中的元素,无需手动管理迭代器。
基本语法如下:
for (element_declaration : range_expression)
{
// 循环体
}
其中,element_declaration 是一个变量声明,用于存储每次迭代中的元素值。range_expression 是一个表示范围的表达式,如容器、数组或其他支持迭代器的对象。
下面是一个示例,演示了如何使用基于范围的 for 循环遍历容器:
#include <iostream>
#include <vector>
int main()
{
std::vector<int> numbers = {1, 2, 3, 4, 5};
for (int num : numbers)
{
std::cout << num << " "; // 打印每个元素
}
return 0;
}
在这个示例中,基于范围的 for 循环遍历了名为 numbers 的 std::vector<int> 容器,并使用变量 num 依次存储每个元素的值。循环体内的语句将每个元素打印出来。
基于范围的 for 循环还可以与关键字 auto 结合使用,以自动推导迭代变量的类型。例如:
for (auto num : numbers)
{
std::cout << num << " "; // 自动推导 num 的类型
}
基于范围的 for 循环适用于遍历各种容器,如 std::vector、std::list、std::set、std::map 等,以及数组和自定义支持迭代器的类型。它简化了遍历容器的代码,避免了手动管理迭代器的复杂性,并提供了更直观的语法来处理容器的元素。