Cómo utilizar la función Upper_bound() en C++

Como Utilizar La Funcion Upper Bound En C



Se puede crear una variedad de programas, incluidos juegos, gráficos, servidores web y más, utilizando el lenguaje de programación C++. Sin embargo, a veces es posible que necesitemos realizar algunas operaciones con los datos de nuestros programas, como buscar, ordenar o encontrar el valor máximo o mínimo entre una variedad de elementos. Una de las funciones que se puede utilizar para encontrar el límite superior de un valor en un rango ordenado de elementos es límite_superior().

¿Qué es la función Upper_bound() en C++?

La función Upper_bound() en C++ es una función que toma un rango ordenado de elementos y un valor como argumentos y devuelve un iterador que apunta al primer elemento del rango que es mayor que el valor.







Tiene dos tipos diferentes de argumentos:



número límite_superior ( en uno. primero , en uno. último , valor )

Los iteradores que especifican el rango de elementos a examinar son el primero y el último. El intervalo utilizado contiene todos los elementos desde el primer elemento hasta el final, pero no incluye el elemento indicado por el último. El valor es el valor con el que comparar los elementos.



número límite_superior ( en uno. primero , en uno. último ,  valorar, comparar comp )

En este caso, la función binaria comp produce un valor que se puede convertir a bool y acepta dos parámetros del mismo tipo que los elementos del rango. Si una determinada condición dicta que el primer argumento no es mayor que el segundo, la función debe devolver un resultado verdadero y, si no, debe devolver un resultado falso.





Cómo utilizar la función Upper_bound() en C++

La función Upper_bound() se puede utilizar para encontrar el límite superior de un valor en un rango ordenado de elementos en diversas situaciones. Por ejemplo, podemos usarlo para encontrar la posición de un elemento en una matriz o vector ordenado, o para encontrar el siguiente elemento mayor en un conjunto o mapa. A continuación se muestran algunos ejemplos de cómo utilizar la función Upper_bound() en C++:

Ejemplo 1: uso de la función Upper_bound() para encontrar la posición de un elemento en una matriz ordenada

Aquí hay un ejemplo que usa la función Upper_bound() para encontrar la posición de un elemento en una matriz ordenada de números enteros y mostrarlo en la pantalla:



#incluir

#incluir

usando espacio de nombres enfermedad de transmisión sexual ;

En t principal ( )

{

    En t formación [ ] = { 15 , 35 , 45 , 55 , 65 } ;

    En t a = tamaño de ( formación ) / tamaño de ( formación [ 0 ] ) ;

    corte << 'La matriz contiene: ' ;

    para ( En t i = 0 ; i < a ; i ++ )

        corte << formación [ i ] << ' ' ;

    corte << ' \norte ' ;

    En t b = 45 ; // declarar e inicializar un valor

    En t * pag = límite_superior ( matriz, matriz + a, b ) ;

    corte << 'Límite superior de' << b << ' está en la posición: ' << ( pag - formación ) << ' \norte ' ; // muestra la posición usando aritmética de punteros

    devolver 0 ;

}

Primero, el programa define los archivos de encabezado necesarios y la matriz que contiene números y luego usa la función sizeof() para obtener el tamaño de la matriz. A continuación se utiliza un bucle for para mostrar los elementos del array y luego se declara un número entero cuya posición en el array se determina mediante el puntero y se muestra en la salida:

Ejemplo 2: uso de la función Upper_bound() para encontrar el siguiente elemento mayor en un conjunto

Aquí hay un código de ejemplo que usa la función Upper_bound() para encontrar el siguiente elemento mayor que un valor dado en un conjunto de números enteros y mostrarlo en la pantalla:

#incluir

#incluir

#incluir

usando espacio de nombres enfermedad de transmisión sexual ;

En t principal ( )

{

colocar < En t > en uno = { 15 , 25 , 35 , 45 , 55 } ; // declarar e inicializar un conjunto de números enteros

    corte << 'Números dados:' ;

    para ( auto a : en uno ) // muestra los elementos establecidos usando un bucle for basado en rango

        corte << a << ' ' ;

    corte << ' \norte ' ;

    En t a = 45 ; // declarar e inicializar un valor

    auto él = límite_superior ( en uno. comenzar ( ) , en uno. fin ( ) , a ) ; // encuentra el límite superior de x en el conjunto usando Upper_bound()

    si ( él ! = en uno. fin ( ) ) // comprobar si el iterador es válido

        corte << 'El siguiente número más alto que' << a << ' es ' << * él << ' \norte ' ; // muestra el elemento usando el operador de desreferencia

    demás

        corte << 'No existe un número mayor que' << a << ' \norte ' ; // muestra un mensaje si no se encuentra dicho elemento

    devolver 0 ;

}

Primero, el código define los archivos de encabezado necesarios y luego se define un vector de cinco elementos; luego, el vector se muestra usando la palabra clave auto, ya que puede establecer automáticamente el tipo de datos de los elementos. A continuación se declara una variable con un valor de 45 que luego se compara con el vector definido usando la función Upper_bound() y luego muestra el resultado de la comparación:

Conclusión

La función Upper_bound() es una función que devuelve un iterador que apunta al primer elemento de un rango ordenado que es mayor que un valor determinado. Para ubicar el primer número en un intervalo que sea mayor o igual a un número específico, use la función Upper_bound() en C++. Esto puede resultar útil para tareas como encontrar el siguiente número más alto en una lista o encontrar el primer elemento en una matriz ordenada que sea mayor que un umbral determinado.