📅  最后修改于: 2023-12-03 15:29:49.414000             🧑  作者: Mango
在C++中,有时候需要对一个向量(vector)中的元素进行遍历,C++ foreach语法提供了一种简单的方法来实现这个操作。
C++ foreach是C++11标准引入的一种循环语法,与传统的for循环语法相比,它更加简单易懂。它是基于STL容器迭代器来实现的,可以遍历向量、数组、列表、map等容器类型的元素。
foreach 的语法格式非常简单:
for (auto x: vec) {
// 循环体语句
}
其中,auto是一个关键字,它可以根据变量初始值的类型自动确定变量的类型;x表示在每次循环中迭代器指向的元素,vec是要遍历的向量。
#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 并不仅仅可以处理一维数组,它同样适用于多维数组,你只需要在循环体中嵌套一个循环即可。
以下是一个二维数组的代码示例:
#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语法只支持遍历操作,无法进行更改操作,如果你需要修改向量中的元素,需要使用传统的for循环语法或者其他STL容器迭代器。
C++ foreach是一种简单实用的循环语法,可以方便地遍历向量、数组、列表、map等容器类型的元素。它是基于STL容器迭代器来实现的,使用foreach语法可以使你的代码更加简洁易懂。