multiset upper_bound() in C++ STL with Examples

The multiset::upper_bound() is a built-in function in C++ STL which returns an iterator pointing to the immediate next element which is just greater than k. If the key passed in the parameter exceeds the maximum key in the container, then the iterator returned points an element which points to the position after the last element in the container.

Syntax:

multiset_name.upper_bound(key)

Parameters: This function accepts a single mandatory parameter key which specifies the element whose upper_bound is to be returned.

Return Value: The function returns an iterator.

Below programs illustrate the above function:

Program 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP program to demonstrate the
// multiset::lower_bound() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
  
    multiset<int> s;
  
    // Function to insert elements
    // in the multiset container
    s.insert(1);
    s.insert(3);
    s.insert(3);
    s.insert(5);
    s.insert(4);
  
    cout << "The multiset elements are: ";
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
  
    // when 3 is present
    auto it = s.upper_bound(3);
    cout << "\nThe upper bound of key 3 is ";
    cout << (*it) << endl;
  
    // when 2 is not present
    // points to next greater after 2
    it = s.upper_bound(2);
    cout << "The upper bound of key 2 is ";
    cout << (*it) << endl;
  
    // when 10 exceeds the max element in multiset
    it = s.upper_bound(10);
    cout << "The upper bound of key 10 is ";
    cout << (*it) << endl;
  
    return 0;
}

chevron_right


Output:

The multiset elements are: 1 3 3 4 5 
The upper bound of key 3 is 4
The upper bound of key 2 is 3
The upper bound of key 10 is 5

Program 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP program to demonstrate the
// multiset::lower_bound() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
  
    multiset<int> s;
  
    // Function to insert elements
    // in the multiset container
    s.insert(10);
    s.insert(13);
    s.insert(13);
    s.insert(25);
    s.insert(24);
  
    cout << "The multiset elements are: ";
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
  
    // when 10 is present
    auto it = s.upper_bound(10);
    cout << "\nThe upper bound of key 10 is ";
    cout << (*it) << endl;
  
    // when 2 is not present
    // points to next greater after 2
    it = s.upper_bound(11);
    cout << "The upper bound of key 2 is ";
    cout << (*it) << endl;
  
    // when 24 exceeds is the max element
    it = s.upper_bound(24);
    cout << "The upper bound of key 24 is ";
    cout << (*it) << endl;
  
    return 0;
}

chevron_right


Output:

The multiset elements are: 10 13 13 24 25 
The upper bound of key 10 is 13
The upper bound of key 2 is 13
The upper bound of key 24 is 25

All functions of multiset



My Personal Notes arrow_drop_up

The function of education is to teach one to think intensively and to think critically

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.