1: //map07.cpp 3: #include <iostream> 4: #include <map> 5: #include <utility> 6: using namespace std; 8: int main() 9: { 10: cout << "\nThis program illustrates reverse iterators for maps, as " 11: "well as\nthe member functions rbegin() and rend()."; 12: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 14: //Create an array of pairs 15: pair<char, int> a[] = 16: { 17: pair<char, int>('A', 65), 18: pair<char, int>('B', 66), 19: pair<char, int>('C', 67), 20: pair<char, int>('D', 68), 21: pair<char, int>('E', 69) 22: }; 23: //Initialize a map with values from the array 24: map<char, int> m(a, a+5); 26: cout << "\nFirst we use a reverse iterator to display the map " 27: "contents\nin descending key order."; 28: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 29: cout << endl; 30: map<char, int>::reverse_iterator r_p; 31: for (r_p = m.rbegin(); r_p != m.rend(); ++r_p) 32: cout << r_p->first << " has an ASCII code of " 33: << r_p->second << ".\n"; 34: cout << "Press Enter to continue ... "; cin.ignore(80, '\n'); 36: cout << "\nThen we use a reverse iterator to display the map " 37: "contents\nin ascending key order."; 38: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 39: r_p = m.rend(); 40: cout << endl; 41: while (r_p != m.rbegin()) 42: { 43: --r_p; 44: cout << r_p->first << " has an ASCII code of " 45: << r_p->second << ".\n"; 46: } 47: cout << "Press Enter to continue ... "; cin.ignore(80, '\n'); 48: }