1. 程式人生 > >C++ 中使用for迴圈和迭代器遍歷容器

C++ 中使用for迴圈和迭代器遍歷容器

之前一直看的是第四版的《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的方式很像,非常好用。