The multiset::upper_bound() is a built-in function in C++ STL that 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 that 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:
C++
#include <bits/stdc++.h>
using namespace std;
int main()
{
multiset< int > s;
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 << " " ;
auto it = s.upper_bound(3);
cout << "\nThe upper bound of key 3 is " ;
cout << (*it) << endl;
it = s.upper_bound(2);
cout << "The upper bound of key 2 is " ;
cout << (*it) << endl;
it = s.upper_bound(10);
cout << "The upper bound of key 10 is " ;
cout << (*it) << endl;
return 0;
}
|
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:
C++
#include <bits/stdc++.h>
using namespace std;
int main()
{
multiset< int > s;
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 << " " ;
auto it = s.upper_bound(10);
cout << "\nThe upper bound of key 10 is " ;
cout << (*it) << endl;
it = s.upper_bound(2);
cout << "The upper bound of key 2 is " ;
cout << (*it) << endl;
it = s.upper_bound(24);
cout << "The upper bound of key 24 is " ;
cout << (*it) << endl;
return 0;
}
|
OutputThe multiset elements are: 10 13 13 24 25
The upper bound of key 10 is 13
The upper bound of key 2 is 10
The upper bound of key 24 is 25
All functions of multiset