C++ 中使用for循环和迭代器遍历容器
之前一直看的是第四版的《C++ Primer》,里面貌似只介绍了用迭代器遍历容器(可能是受当时版本所限),这里记录下如何用for循环来遍历容器(也可遍历普通数组)class Solution{// C++ 中默认的成员函数类型是private, 从java转过来的程序员需要注意;public:void traverse_for(vectorint> vec) {
·
之前一直看的是第四版的《C++ Primer》,里面貌似只介绍了用迭代器遍历容器(可能是受当时版本所限),这里记录下如何用for循环来遍历容器(也可遍历普通数组)
class Solution{
// C++ 中默认的成员函数类型是private, 从java转过来的程序员需要注意;
public:
void traverse_for(vector<int> vec) {
for(int i:vec) {
cout<<i<<endl;
}
}
void traverse_for(map<string, int> my_map) {
for(pair<string, int> m:my_map) {
cout<<m.first<<":"<<m.second<<endl;
}
}
void traverse_iter(vector<int> vec) {
vector<int>::iterator it = vec.begin();
while(it!=vec.end()) {
cout<<*it<<endl;
it++;
}
}
void traverse_iter(map<string, int> my_map) {
map<string, int>::iterator it=my_map.begin();
while(it!=my_map.end()) {
cout<<it->first<<":"<<it->second<<endl;
it++;
}
}
};
int main() {
Solution solution;
int arr[] = {1,2,3,4,5};
vector<int> vec(begin(arr), end(arr));
map<string, int> my_map;
my_map["apple"] = 1;
my_map["banana"] = 2;
my_map["orange"] = 3;
solution.traverse_for(vec);
cout<<"=================="<<endl;
solution.traverse_for(my_map);
cout<<"=================="<<endl;
solution.traverse_iter(vec);
cout<<"=================="<<endl;
solution.traverse_for(my_map);
return 0;
}
这种for循环遍历跟之前用python的for each的方式很像,非常好用。
更多推荐
已为社区贡献1条内容
所有评论(0)