El multiset::lower_bound() es una función incorporada en C++ STL que devuelve un iterador que apunta al primer elemento en el contenedor que es equivalente a k pasado en el parámetro. En caso de que k no esté presente en el contenedor del conjunto, la función devuelve un iterador que apunta al siguiente elemento inmediato que es mayor que k. Si la clave pasada en el parámetro excede el valor máximo en el contenedor, entonces el iterador devuelto imprime el número de elementos en el contenedor.
Sintaxis:
multiset_name.lower_bound(key)
Parámetros: esta función acepta una única clave de parámetro obligatoria que especifica el elemento cuyo límite inferior se va a devolver.
Valor devuelto: la función devuelve un iterador.
El siguiente programa ilustra la función anterior:
Programa 1:
// 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(2); s.insert(2); s.insert(1); s.insert(4); cout << "The multiset elements are: "; for (auto it = s.begin(); it != s.end(); it++) cout << *it << " "; // when 2 is present auto it = s.lower_bound(2); cout << "\nThe lower bound of key 2 is "; cout << (*it) << endl; // when 3 is not present // points to next greater after 3 it = s.lower_bound(3); cout << "The lower bound of key 3 is "; cout << (*it) << endl; // when 5 exceeds the max element in multiset it = s.lower_bound(7); cout << "The lower bound of key 7 is "; cout << (*it) << endl; return 0; }
The multiset elements are: 1 1 2 2 4 The lower bound of key 2 is 2 The lower bound of key 3 is 4 The lower bound of key 7 is 5
Programa 2:
// 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.lower_bound(3); cout << "\nThe lower bound of key 3 is "; cout << (*it) << endl; // when 2 is not present // points to next greater after 2 it = s.lower_bound(2); cout << "The lower bound of key 2 is "; cout << (*it) << endl; // when 10 exceeds the max element in multiset it = s.lower_bound(10); cout << "The lower bound of key 10 is "; cout << (*it) << endl; return 0; }
The multiset elements are: 1 3 3 4 5 The lower bound of key 3 is 3 The lower bound of key 2 is 3 The lower bound of key 10 is 5