map遍历
测试代码:
1 #include<bits/stdc++.h>
2 using namespace std;
3 void show(map<int,string>& mp)
4 {
5 map<int,string>::iterator iter=mp.begin();
6 while(iter!=mp.end())
7 {
8 cout<<iter->first<<" "<<iter->second<<endl;
9 iter++;
10 }
11 cout<<endl;
12 }
13 int main()
14 {
15 //构造 map
16 map<int,string> mp;
17 mp.insert({5,"map 5"});//使用{}
18 mp.insert({6,"map 6"});//使用{}
19 mp.insert({7,"map 7"});//使用{}
20 mp.insert({8,"map 8"});//使用{}
21 mp.insert({0,"map 0"});//使用{}
22 mp.insert({1,"map 1"});//使用{}
23 mp.insert({2,"map 2"});//使用{}
24 mp.insert({3,"map 3"});//使用{}
25 mp.insert({4,"map 4"});//使用{}
26
27
28 //map的遍历
29 for(auto& it:mp) //auto自动识别为迭代器类型
30 {
31 // cout<<it->second<<endl;
32 cout<<it.second<<endl;
33 }
34 cout<<endl;
35 //正向迭代器:
36 map<int,string>::iterator iter=mp.begin();
37 while(iter != mp.end())
38 {
39 cout<< " first "<< iter->first << " second "<<iter->second<<std::endl;
40 iter++;
41 }
42 cout<<endl;
43 for(iter=mp.begin();iter!=mp.end();iter++){
44 cout<< " first "<< iter->first << " second "<<iter->second<<std::endl;
45 }
46 cout<<endl;
47
48 //反向迭代器:
49 map<int,string>::reverse_iterator itera=mp.rbegin();
50 while(itera != mp.rend())
51 {
52 cout<< " first "<< itera->first << " second "<<itera->second<<std::endl;
53 itera++;
54 }
55 return 0;
56 }
运行结果:
1 map 0 2 map 1 3 map 2 4 map 3 5 map 4 6 map 5 7 map 6 8 map 7 9 map 8 10 11 first 0 second map 0 12 first 1 second map 1 13 first 2 second map 2 14 first 3 second map 3 15 first 4 second map 4 16 first 5 second map 5 17 first 6 second map 6 18 first 7 second map 7 19 first 8 second map 8 20 21 first 0 second map 0 22 first 1 second map 1 23 first 2 second map 2 24 first 3 second map 3 25 first 4 second map 4 26 first 5 second map 5 27 first 6 second map 6 28 first 7 second map 7 29 first 8 second map 8 30 31 first 8 second map 8 32 first 7 second map 7 33 first 6 second map 6 34 first 5 second map 5 35 first 4 second map 4 36 first 3 second map 3 37 first 2 second map 2 38 first 1 second map 1 39 first 0 second map 0