📜  c++ foreach 向量 - C++ (1)

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

C++ foreach 向量

在C++中,有时候需要对一个向量(vector)中的元素进行遍历,C++ foreach语法提供了一种简单的方法来实现这个操作。

什么是foreach?

C++ foreach是C++11标准引入的一种循环语法,与传统的for循环语法相比,它更加简单易懂。它是基于STL容器迭代器来实现的,可以遍历向量、数组、列表、map等容器类型的元素。

foreach 的语法格式

foreach 的语法格式非常简单:

for (auto x: vec) {
  // 循环体语句
}

其中,auto是一个关键字,它可以根据变量初始值的类型自动确定变量的类型;x表示在每次循环中迭代器指向的元素,vec是要遍历的向量。

foreach 的代码示例
#include <iostream>
#include <vector>

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

  for (auto x: vec) {
    std::cout << x << " ";
  }
  std::cout << std::endl;

  return 0;
}

以上代码将输出向量 vec 中的所有元素,输出结果为:

1 2 3 4 5
foreach 对多维数组的支持

foreach 并不仅仅可以处理一维数组,它同样适用于多维数组,你只需要在循环体中嵌套一个循环即可。

以下是一个二维数组的代码示例:

#include <iostream>
#include <vector>

int main() {
  std::vector<std::vector<int>> vec {{1, 2, 3},
                                      {4, 5, 6},
                                      {7, 8, 9}};

  for (auto row: vec) {
    for (auto x: row) {
      std::cout << x << " ";
    }
    std::cout << std::endl;
  }

  return 0;
}

以上代码将输出一个二维数组中的所有元素,输出结果为:

1 2 3 
4 5 6 
7 8 9 
foreach 的注意事项

在使用 foreach 遍历一个向量时,无法使用迭代器,你只能访问当前迭代器所指向的元素。

此外,foreach语法只支持遍历操作,无法进行更改操作,如果你需要修改向量中的元素,需要使用传统的for循环语法或者其他STL容器迭代器。

总结

C++ foreach是一种简单实用的循环语法,可以方便地遍历向量、数组、列表、map等容器类型的元素。它是基于STL容器迭代器来实现的,使用foreach语法可以使你的代码更加简洁易懂。