1: //lower_bound1a.cpp
3: #include <iostream>
4: #include <vector>
5: #include <algorithm>
6: using namespace std;
8: int main()
9: {
10: cout << "\nThis program illustrates the use of the STL lower_bound() "
11: "algorithm (default\nversion) to find the lower bound location "
12: "of a given target value in a vector\nof integers sorted in "
13: "ascending order.";
14: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
16: int a[] = {2, 3, 5, 6, 7, 7, 7, 8, 9, 10};
17: vector<int> v(a, a+10);
18: cout << "\nHere are the contents of v:\n";
19: for (vector<int>::size_type i=0; i<v.size(); i++)
20: cout << v.at(i) << " ";
21: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
23: vector<int>::iterator lower;
25: lower = lower_bound(v.begin(), v.end(), 3);
26: if (lower != v.end())
27: cout << "\nLower bound of 3 in v = " << *lower;
28: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
30: lower = lower_bound(v.begin(), v.end(), 4);
31: if (lower != v.end())
32: cout << "\nLower bound of 4 in v = " << *lower;
33: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
35: lower = lower_bound(v.begin(), v.end(), 5);
36: if (lower != v.end())
37: cout << "\nLower bound of 5 in v = " << *lower;
38: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
40: lower = lower_bound(v.begin(), v.end(), 7);
41: if (lower != v.end())
42: cout << "\nLower bound of 7 in v = " << *lower;
43: cout << "\nThis is the first of the three 7's, since the value "
44: "before this 7 is " << *(lower-1) << ".";
45: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
47: lower = lower_bound(v.begin(), v.end(), 0);
48: if (lower != v.end())
49: cout << "\nLower bound of 0 in v = " << *lower;
50: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
52: lower = lower_bound(v.begin(), v.end(), 15);
53: if (lower != v.end())
54: cout << "\nLower bound of 15 in v = " << *lower;
55: cout << "\nNote that the lower bound location of 15 is "
56: "\nthe end (one-past-the-last) vector position.";
57: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n');
58: }