range-based for循环是C++11引入的一种方便遍历容器(如数组、vector、map等)元素的语法糖。它的语法形式为:
for (declaration : collection) {
statement
}
其中:
1.declaration:用于声明循环中每个元素的变量,可以是引用也可以是值,类型由collection中元素的类型决定。
2.collection:要遍历的容器。
3.statement:循环体内的语句,用于处理每个元素。下面是一个使用range-based for循环遍历std::vector的示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// 使用range-based for循环遍历vector中的每个元素
for (int num : numbers) {
std::cout << num << " ";
}
return 0;
}
在这个示例中,declaration部分的int num声明了一个整型变量num,用于存储每次迭代中的当前元素的值。collection部分为numbers,是我们要遍历的std::vector容器。statement部分为std::cout << num << " ";,用于输出每个元素的值。
range-based for循环在遍历过程中不需要指定起始和结束迭代器,它会自动遍历collection中的所有元素,并将每个元素赋值给declaration中声明的变量,然后执行statement中的语句。这种语法简洁明了,适用于大多数情况下的容器遍历操作。