C++11 中引入了 range-based for 循环,可以方便地遍历数组、容器等可迭代对象:

int arr[] = {1, 2, 3};
for (int x : arr) {
    cout << x << ' '; 
}
// 输出:1 2 3

vector<int> vec = {4, 5, 6};
for (int x : vec) {
    cout << x << ' '; 
}
// 输出:4 5 6

使用 range-based for 循环时,循环变量的类型可以是自动推断的(使用 auto 关键字),也可以是明确指定的。

除此之外,C++17 中还引入了 std::for_each 函数模板,可以使用 Lambda 表达式简洁地遍历容器中的元素:

vector<int> vec = {1, 2, 3};
std::for_each(vec.begin(), vec.end(), [](int x) { 
    cout << x << ' '; 
});
// 输出:1 2 3

此外,还有一些第三方库(如 Boost.Range)提供了更丰富的遍历方式。

C++ 遍历数组和容器的现代方法:for 循环和 std::for_each

原文地址: https://www.cveoy.top/t/topic/m2pA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录