foreach C++
时间: 2023-11-03 12:54:00 浏览: 100
C++
4星 · 用户满意度95%
在C++中,没有内置的foreach循环。然而,可以使用不同的方法来实现类似的功能。其中一种方法是使用C++11的auto关键字进行类型推导,配合使用std::for_each函数来遍历容器。在这种方法中,您需要包含<algorithm>和<iostream>头文件,并定义一个函数来处理每个元素。下面是一个使用std::for_each函数的例子:
#include<algorithm>
#include<iostream>
#include<vector>
void func(int n) {
std::cout << n << std::endl;
}
int main() {
std::vector<int> arr;
arr.push_back(1);
arr.push_back(2);
std::for_each(arr.begin(), arr.end(), func);
return 0;
}
另一种方法是使用宏定义来实现foreach循环。您可以定义一个宏,其中包含一个迭代器和一个容器,然后使用该宏来遍历容器的元素。下面是一个使用宏定义的foreach循环的示例:
//定义
#define foreach(container,it) \
for(typeof((container).begin()) it = (container).begin();it!=(container).end(); it)
//输出
foreach(m,it) {
cout<<it->first<<","<<it->second<<endl;
}
还有一种常见的方法是使用传统的for循环和迭代器来遍历容器。这种方法使用了C++中的迭代器概念来访问容器的元素。下面是一个使用传统for循环和迭代器遍历vector容器的例子:
#include<iostream>
#include<vector>
int main() {
std::vector<int> arr;
arr.push_back(1);
arr.push_back(2);
for (auto it = arr.begin(); it != arr.end(); it++) {
std::cout << *it << std::endl;
}
return 0;
}
这些都是在C++中实现foreach循环的方法。您可以根据自己的需求选择其中一种方法来遍历容器中的元素。
阅读全文