1: //set15.cpp
3: #include <iostream>
4: #include <set>
5: #include <utility>
6: using namespace std;
8: int main()
9: {
10: cout << "\nThis program illustrates the equal_range() member function "
11: "for sets, which\nreturns a pair of iterators pointing at the upper "
12: "and lower bounds of its\nargument in the calling set of values.";
13: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
15: int a[] ={2, 4, 6, 8, 10};
16: set<int> s(a, a+5);
18: cout << "\nHere are the values in our set: ";
19: set<int>::iterator p = s.begin();
20: while (p != s.end()) cout << *p++ << " ";
22: pair<set<int>::iterator, set<int>::iterator> lower_upper;
24: lower_upper = s.equal_range(0);
25: if (lower_upper.first == s.end())
26: cout << "\nThe lower bound of 0 is at the end of the range.";
27: else
28: cout << "\nThe lower bound of 0 is " << *lower_upper.first << ".";
29: if (lower_upper.second == s.end())
30: cout << "\nThe upper bound of 0 is at the end of the range.";
31: else
32: cout << "\nThe upper bound of 0 is " << *lower_upper.first << ".";
34: lower_upper = s.equal_range(2);
35: if (lower_upper.first == s.end())
36: cout << "\nThe lower bound of 2 is at the end of the range.";
37: else
38: cout << "\nThe lower bound of 2 is " << *lower_upper.first << ".";
39: if (lower_upper.second == s.end())
40: cout << "\nThe upper bound of 2 is at the end of the range.";
41: else
42: cout << "\nThe upper bound of 2 is " << *lower_upper.first << ".";
44: lower_upper = s.equal_range(5);
45: if (lower_upper.first == s.end())
46: cout << "\nThe lower bound of 5 is at the end of the range.";
47: else
48: cout << "\nThe lower bound of 5 is " << *lower_upper.first << ".";
49: if (lower_upper.second == s.end())
50: cout << "\nThe upper bound of 5 is at the end of the range.";
51: else
52: cout << "\nThe upper bound of 5 is " << *lower_upper.first << ".";
54: lower_upper = s.equal_range(6);
55: if (lower_upper.first == s.end())
56: cout << "\nThe lower bound of 6 is at the end of the range.";
57: else
58: cout << "\nThe lower bound of 6 is " << *lower_upper.first << ".";
59: if (lower_upper.second == s.end())
60: cout << "\nThe upper bound of 6 is at the end of the range.";
61: else
62: cout << "\nThe upper bound of 6 is " << *lower_upper.first << ".";
64: lower_upper = s.equal_range(10);
65: if (lower_upper.first == s.end())
66: cout << "\nThe lower bound of 10 is at the end of the range.";
67: else
68: cout << "\nThe lower bound of 10 is " << *lower_upper.first << ".";
69: if (lower_upper.second == s.end())
70: cout << "\nThe upper bound of 10 is at the end of the range.";
71: else
72: cout << "\nThe upper bound of 10 is " << *lower_upper.first << ".";
74: lower_upper = s.equal_range(12);
75: if (lower_upper.first == s.end())
76: cout << "\nThe lower bound of 12 is at the end of the range.";
77: else
78: cout << "\nThe lower bound of 12 is " << *lower_upper.first << ".";
79: if (lower_upper.second == s.end())
80: cout << "\nThe upper bound of 12 is at the end of the range.";
81: else
82: cout << "\nThe upper bound of 12 is " << *lower_upper.first << ".";
84: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
85: }