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