File: upperbound.cc

package info (click to toggle)
c%2B%2B-annotations 12.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 13,044 kB
  • sloc: cpp: 24,337; makefile: 1,517; ansic: 165; sh: 121; perl: 90
file content (42 lines) | stat: -rw-r--r-- 1,407 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    #include <algorithm>
    #include <iostream>
    #include <functional>
    #include <iterator>
    using namespace std;

    int main()
    {
        int         ia[] = {10, 15, 15, 20, 30};
        size_t    n = sizeof(ia) / sizeof(int);

        cout << "Sequence: ";
        copy(ia, ia + n, ostream_iterator<int>(cout, " "));
        cout << '\n';

        cout << "15 can be inserted before " <<
                *upper_bound(ia, ia + n, 15) << '\n';
        cout << "35 can be inserted after " <<
                (upper_bound(ia, ia + n, 35) == ia + n ?
                                    "the last element" : "???") << '\n';

        sort(ia, ia + n, greater<int>());

        cout << "Sequence: ";
        copy(ia, ia + n, ostream_iterator<int>(cout, " "));
        cout << '\n';

        cout << "15 can be inserted before " <<
                *upper_bound(ia, ia + n, 15, greater<int>()) << '\n';
        cout << "35 can be inserted before " <<
                (upper_bound(ia, ia + n, 35, greater<int>()) == ia ?
                                    "the first element " : "???") << '\n';
    }
    /*
        Displays:
            Sequence: 10 15 15 20 30
            15 can be inserted before 20
            35 can be inserted after the last element
            Sequence: 30 20 15 15 10
            15 can be inserted before 10
            35 can be inserted before the first element
    */