El multiset::upper_bound() es una función incorporada en C++ STL que devuelve un iterador que apunta al siguiente elemento inmediato que es mayor que k. Si la clave pasada en el parámetro excede la clave máxima en el contenedor, entonces el iterador devolvió puntos un elemento que apunta a la posición después del último elemento en el contenedor.
Sintaxis:
multiset_name.upper_bound(key)
Parámetros: esta función acepta una única clave de parámetro obligatoria que especifica el elemento cuyo límite superior se va a devolver.
Valor devuelto: la función devuelve un iterador.
Los siguientes programas ilustran la función anterior:
Programa 1:
C++
// C++ program to demonstrate the // multiset::upper_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; }
Producción:
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
Programa 2:
C++
// C++ program to demonstrate the // multiset::upper_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(2); 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; }
Producción
The 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