📜  C++中基于范围的for循环(1)

📅  最后修改于: 2023-12-03 15:14:02.063000             🧑  作者: Mango

C++中基于范围的for循环

在 C++11 引入了基于范围的 for 循环(range-based for loop),使遍历容器和数组变得更加简洁和直观。基于范围的 for 循环可以用于迭代任何支持迭代器或重载了 begin() 和 end() 函数的容器。

语法

基于范围的 for 循环的语法如下:

for (auto& element : container) {
    // 执行代码
}

这里的 container 可以是数组、vector、list、set、map 等等。element 是每次迭代的元素的引用,可以通过它访问和修改容器中的值。循环会依次遍历容器内的每个元素,直到遍历完所有元素为止。

示例

让我们看一些实际的代码示例来理解基于范围的 for 循环:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};

    // 遍历 vector 容器
    for (auto& num : numbers) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    // 修改 vector 容器中的元素
    for (auto& num : numbers) {
        num *= 2;
    }

    // 再次遍历 vector 容器
    for (auto& num : numbers) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果将会是:

1 2 3 4 5
2 4 6 8 10

在上述示例中,我们首先创建了一个存储一些整数的 vector 容器。然后我们使用基于范围的 for 循环遍历 vector 容器并打印出每个元素。接下来,我们再次使用基于范围的 for 循环修改 vector 容器中的每个元素的值,并再次打印出结果。

需要注意的是,基于范围的 for 循环中的 element 是一个引用,可以直接对容器中的元素进行修改。

适用范围

基于范围的 for 循环可以应用于任何支持迭代器或拥有 begin() 和 end() 函数的容器,包括数组、vector、list、set、map 等等。因此,它为我们提供了一种遍历数据结构的方便方法,无需手动管理迭代器,简化了代码的编写和阅读。

总结

基于范围的 for 循环是 C++11 中引入的一项特性,它简化了遍历容器和数组的过程,使代码更加简洁和易读。通过遍历容器中的每个元素,我们可以轻松访问和修改容器中的值。无论是对于新手程序员还是有经验的开发者,基于范围的 for 循环都是一项非常有用的工具。