En este artículo, vamos a aprender sobre el uso del límite distinto función de biblioteca () y cómo usar eso?
std :: LOWER_BOUND ()
std :: LOWER_BOUND () es una función de biblioteca STL, que viene bajo la biblioteca cabecera algoritmo y encuentra el límite inferior del elemento de búsqueda en un intervalo . Inferior significa encuadernados el elemento menos en el intervalo que es mayor o igual que el elemento de búsqueda.
Say el rango es: [4, 5, 6, 9, 12] y el elemento de búsqueda es 6, entonces el límite inferior es 6 en sí. Si el elemento de búsqueda es 7, entonces el límite inferior sería 9
iPhone:
- Cuando existe un elemento de búsqueda:
std :: límite distinto () vuelve iterador para el propio elemento - cuando el elemento de búsqueda no existe:
- Si todos los elementos son mayores que el elemento de búsqueda:
límite distinto () devuelve un iterador para comenzar de la gama. - Si todos los elementos son más bajos que el elemento de búsqueda:
LOWER_BOUND () devuelve un iterador a extremo de la gama (No límite inferior existe). - De lo contrario,
límite distinto () un iterador al siguiente elemento mayor al elemento de búsqueda (El mayor elemento más próximo que el elemento de búsqueda) de la gama
- Si todos los elementos son mayores que el elemento de búsqueda:
Para utilizar el límite distinto () el rango tiene que ser resuelto.
Sintaxis:
ForwardIterator lower_bound(
ForwardIterator first,
ForwardIterator last,
const T& searching_element
);
Parámetro (s):
- ForwardIterator primera : iterador para el inicio del rango
- ForwardIterator última : iterador hasta el final de el rango
- class T & amp; searching_element : T es el tipo de datos y searching_element es el elemento que límite inferior se encuentran
class Tipo: El tipo class es un iterador a los encontrados límite inferior de la gama.
C ++ Implementación:
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<int> arr{ 6, 5, 9, 12, 4 };
//sort before using lower_bound()
sort(arr.begin(), arr.end());
int searching_element = 6;
vector<int>::iterator it;
it = lower_bound(arr.begin(), arr.end(), searching_element);
//if all eleemnts are smaller than the searching
//element then no lower bound exists
if (it == arr.end()) {
cout << "No lower bound existsn";
}
else
cout << "Lower bound of " << searching_element << ": " << *it << endl;
searching_element = 7;
it = lower_bound(arr.begin(), arr.end(), searching_element);
//if all eleemnts are smaller than the searching
//element then no lower bound exists
if (it == arr.end()) {
cout << "No lower bound existsn";
}
else
cout << "Lower bound of " << searching_element << ": " << *it << endl;
return 0;
}
de salida:
Lower bound of 6: 6
Lower bound of 7: 9
En lo anterior LOWER_BOUND () función, para comparar entre elementos class operador comparador ‘& lt;’ se utiliza.
Pero tenemos una función versión extendida que utiliza un comparador definida por el usuario para comparar b / w elementos.
ForwardIterator lower_bound(
ForwardIterator first,
ForwardIterator last,
const T& searching_element,
Comparator comp);
Parámetro (s):
- ForwardIterator primera : iterador para el inicio del rango
- ForwardIterator última : iterador hasta el final de la gama
- class T & amp ; searching_element : T es el tipo de datos y searching_element es el elemento que límite inferior se encuentra
- Comparador los : definida por el usuario comparador
const tipo: El tipo class es un iterador a los encontrados límite inferior de la gama.
Esto puede ser útil si usted tiene los tipos de datos definidos por el usuario.