C++ 遍历数组和容器的现代方法:for 循环和 std::for_each
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)提供了更丰富的遍历方式。
原文地址: https://www.cveoy.top/t/topic/m2pA 著作权归作者所有。请勿转载和采集!