1: //map05.cpp 3: #include <iostream> 4: #include <map> 5: #include <utility> 6: using namespace std; 8: int main() 9: { 10: cout << "\nThis program illustrates the construction of a map from " 11: "an array of pairs.\nThe map is then displayed in two different " 12: "ways. The code illustrates the\nuse of a map iterator, the " 13: "begin() and end() functions, and the operators\n=, !=, ++, --, " 14: "*, -> and == with map iterators."; 15: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 17: //Create an array of pairs 18: pair<char, int> a[] = 19: { 20: pair<char, int>('B', 66), 21: pair<char, int>('A', 65), 22: pair<char, int>('D', 68), 23: pair<char, int>('C', 67), 24: pair<char, int>('E', 69) 25: }; 26: //Initialize a map with values from the array 27: map<char, int> m(a, a+5); 29: cout << endl; 30: map<char, int>::iterator p; 31: for (p = m.begin(); p != m.end(); ++p) 32: cout << p->first << " has an ASCII code of " << p->second << ".\n"; 33: if (p == m.end()) 34: cout << "Our iterator is now pointing to one-past-the-last position."; 35: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 37: p = m.end(); 38: cout << endl; 39: while (p != m.begin()) 40: { 41: --p; 42: cout << p->first << " has an ASCII code of " << p->second << ".\n"; 43: } 44: if (p == m.begin()) 45: cout << "Our iterator is now pointing to the first position."; 46: if (*p == *m.begin()) 47: cout << "\nWe confirm this by checking component equality as well."; 48: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 49: }