c++foreach用法
C++中的foreach循环是一种简化循环语法的方式,也称为范围for循环。它可以遍历一个容器或数组中的所有元素,而不需要使用传统的for循环语法。
foreach循环的语法如下:
for (auto element : container) {
// 循环体
}
其中,auto是C++11中的关键字,用于自动推断变量类型。element是一个变量名,用于存储容器中的每个元素。container是要遍历的容器或数组。
例如,以下代码使用foreach循环遍历一个vector容器中的所有元素:
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (auto element : vec) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
输出结果为:
1 2 3 4 5
需要注意的是,foreach循环只能用于遍历容器或数组中的元素,不能用于遍历普通的指针或迭代器。此外,foreach循环也不能修改容器或数组中的元素,如果需要修改,需要使用传统的for循环语法。
除了上述基本用法,foreach循环还可以与auto关键字结合使用,自动推断元素类型。例如:
std::vector<int> vec = {1, 2, 3, 4, 5};
for (auto& element : vec) {
element *= 2;
}
这段代码使用foreach循环遍历vector容器中的所有元素,并将每个元素乘以2。需要注意的是,这里使用了auto&,表示element是一个引用类型,可以修改容器中的元素。
除了vector容器,foreach循环还可以用于遍历其他STL容器,如list、set、map等。例如:
std::set<std::string> mySet = {"apple", "banana", "orange"};
for (const auto& element : mySet) {
std::cout << element << " ";
}
这段代码使用foreach循环遍历set容器中的所有元素,并输出到控制台。
需要注意的是,foreach循环的效率可能不如传统的for循环,因为它需要在每次循环中进行元素类型的自动推断。因此,在需要高效遍历容器或数组时,建议使用传统的for循环语法。