¿Qué es el método lower_Bound() en C++?

Que Es El Metodo Lower Bound En C



El lenguaje de programación C++ ofrece una amplia gama de funciones y métodos que se utilizan ampliamente. El método lower_bound() es una de esas funciones que se utiliza para encontrar la primera aparición de un valor dado en un contenedor ordenado. Este artículo cubre la sintaxis, los parámetros, los valores devueltos y un código de ejemplo para el método lower_bound() en C++.

¿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 en C++ y se utiliza para realizar búsquedas binarias en matrices, vectores y otros contenedores ordenados. El método lower_bound() devuelve un iterador que apunta al primer elemento en un rango específico de un contenedor, que no es menor que el valor proporcionado.

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.

#incluye

En 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::iterator denominadas it1, it2 e it3. Estas variables se usarán para almacenar los resultados de llamar a std::lower_bound() en el vector de valores con diferentes argumentos.

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 en C++ y se puede usar para realizar búsquedas binarias en matrices, vectores y otros contenedores ordenados. El método da un iterador que apunta hacia el primer elemento en un rango que no es menor que el valor dado. Lea más sobre el método lower_bound() en este artículo.