1: //pair1.cpp
3: #include <iostream>
4: #include <string>
5: #include <utility>
6: using namespace std;
8: int main()
9: {
10: cout << "\nThis program illustrates the pair template struct.";
11: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
13: cout << "\nFirst we use the two-parameter pair constructor to create "
14: "two pairs:\na char/int pair and a string/double pair. Then we "
15: "display the first\nand second components of each.";
16: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
18: pair<char, int> pair1('A', 65);
19: pair<string, double> pair2("John", 99.95);
20: cout << "\nThe char/int pair: "
21: << pair1.first << " " << pair1.second;
22: cout << "\nThe string/double pair: "
23: << pair2.first << " " << pair2.second;
24: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
26: cout << "\nNext we create three empty pair objects using the default "
27: "constructor for\neach: a char/int pair, a string/double pair, "
28: "and an int/int pair. Then we\ncreate appropriate pair objects and "
29: "assign them to these empty objects.\nThe first two are created "
30: "using the make_pair function, and the last is\ncreated using "
31: "the two-parameter constructor once again.";
32: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
33: pair<char, int> pair3;
34: pair<string, double> pair4;
35: pair<int, int> pair5;
36: pair3 = make_pair('B', 66);
37: pair4 = make_pair("Jack", 99.99);
38: pair5 = pair<int, int>(25, 77);
39: cout << "\nThe char/int pair: "
40: << pair3.first << " " << pair3.second;
41: cout << "\nThe string/double pair: "
42: << pair4.first << " " << pair4.second;
43: cout << "\nThe int/int pair: "
44: << pair5.first << " " << pair5.second;
45: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
47: cout << "\nFinally, we use the copy constructor to create copies "
48: "of two pairs used\npreviously, and then display them once again.";
49: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
51: pair<char, int> pair6(pair3);
52: pair<string, double> pair7 = pair4;
53: cout << "\nA char/int pair seen above: "
54: << pair6.first << " " << pair6.second;
55: cout << "\nA string/double pair seen above: "
56: << pair7.first << " " << pair7.second;
57: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
58: }