¿Qué es el método lower_bound()?
El método lower_bound() en C++ encuentra la primera ocurrencia de un valor dado en un contenedor ordenado. Es parte de la biblioteca
Sintaxis
El método lower_bound() en C++ tiene dos variaciones: una sintaxis predeterminada y otra personalizada.
Sintaxis predeterminada
La sintaxis predeterminada toma un ForwardIterator que apunta al primer y último elemento en el rango que se buscará, respectivamente, y un valor para comparar los elementos en el rango.
ForwardIterator límite_inferior ( ForwardIterator primero , ForwardIterator último , constante T & valor ) ;
Sintaxis personalizada
La sintaxis personalizada también incluye una función de predicado binario definida por el usuario que sigue un orden débil estricto para ordenar los elementos.
ForwardIterator límite_inferior ( ForwardIterator primero , ForwardIterator último , constante T & valor , Comparar composición ) ;
Parámetros
El método lower_bound() en C++ toma tres parámetros.
Primero último: Los primeros dos parámetros, 'primero' y 'último', determinan el rango [primero, último] dentro del cual el método busca el límite inferior. El rango se especifica mediante dos parámetros, a saber, 'primero' y 'último'. El rango incluye todos los elementos entre el 'primer' y el 'último' iterador, pero excluye el elemento al que apunta el 'último' iterador.
valor: El tercer parámetro del método lower_bound() se denomina 'val'. Representa el valor del límite inferior que debe encontrarse dentro del rango especificado. Cuando se llama al método lower_bound(), busca el primer elemento dentro del rango especificado de un contenedor que sea mayor o igual que el valor dado 'val'.
borrador: El método lower_bound() también puede aceptar una función de comparación binaria como su cuarto parámetro. Toma dos argumentos: El tipo apuntado por el Reenviar iterador , y el segundo es valor . Luego, la función devuelve un valor booleano basado en una comparación entre los dos argumentos. El argumento comp no cambia ninguno de sus argumentos y solo puede ser un puntero de función o un objeto de función.
Valor devuelto
lower_bound() devuelve un iterador que apunta hacia el primer elemento que es mayor o igual que el valor . Si todos los elementos en el rango especificado de un contenedor son más pequeños que el valor dado valor , el método lower_bound() devuelve un iterador que apunta al último elemento del rango, y si todos los elementos son mayores que valor , proporciona un iterador que apunta al primer elemento del rango.
Código de ejemplo
Este código C++ demuestra el uso de la función std::lower_bound() para encontrar el primer elemento en un vector ordenado que no sea menor que un valor dado.
#incluyeEn t principal ( )
{
// Vector de entrada
estándar :: vector < doble > valores { 10 , 15 , 20 , 25 , 30 } ;
// Imprimir vector
estándar :: cout << 'El vector contiene:' ;
para ( no firmado En t i = 0 ; i < valores. tamaño ( ) ; i ++ )
estándar :: cout << ' ' << valores [ i ] ;
estándar :: cout << ' \norte ' ;
estándar :: vector < doble >:: iterador es1 , it2 , it3 ;
// estándar :: límite_inferior
es1 = estándar :: límite inferior ( valores. comenzar ( ) , valores. fin ( ) , 13 ) ;
it2 = estándar :: límite inferior ( valores. comenzar ( ) , valores. fin ( ) , 23 ) ;
it3 = estándar :: límite inferior ( valores. comenzar ( ) , valores. fin ( ) , 33 ) ;
estándar :: cout
<< ' \norte lower_bound para el elemento 13 en la posición: '
<< ( es1 - valores. comenzar ( ) ) ;
estándar :: cout
<< ' \norte lower_bound para el elemento 23 en la posición: '
<< ( it2 - valores. comenzar ( ) ) ;
estándar :: cout
<< ' \norte lower_bound para el elemento 33 en la posición: '
<< ( it3 - valores. comenzar ( ) ) ;
devolver 0 ;
}
El código comienza definiendo un std::vector de tipo valores de doble nombre e inicializándolo con algunos valores. Luego imprime los elementos del vector usando un bucle for.
A continuación, el código declara tres variables std::vector
La función std::lower_bound() se llama con tres valores diferentes: 13, 23 y 33. En cada llamada, lower_bound() proporciona un iterador que apunta hacia el primer elemento del vector que es mayor o igual que el valor específico.
Luego, el código imprime las posiciones de estos elementos en el vector restando el iterador de valores.begin() del iterador devuelto por std::lower_bound(), que da el índice del elemento en el vector.
Producción
Conclusión
El método lower_bound() en C++ encuentra la primera ocurrencia de un valor dado en un contenedor ordenado. Es parte de la biblioteca