Como usar a função Upper_bound() em C++

Como Usar A Funcao Upper Bound Em C



Uma variedade de programas, incluindo jogos, gráficos, servidores web e muito mais, podem ser criados usando a linguagem de programação C++. No entanto, às vezes podemos precisar realizar algumas operações nos dados dos nossos programas, como pesquisar, classificar ou encontrar o valor máximo ou mínimo entre um intervalo de elementos. Uma das funções que pode ser usada para encontrar o limite superior de um valor em um intervalo classificado de elementos é Upper_bound().

O que é a função Upper_bound() em C++

A função upper_bound() em C++ é uma função que recebe um intervalo classificado de elementos e um valor como argumentos e retorna um iterador apontando para o primeiro elemento no intervalo que é maior que o valor.







Possui dois tipos diferentes de argumentos:



número superior_limite ( num. primeiro , num. durar , valor )

Os iteradores que especificam o intervalo de elementos a serem examinados são o primeiro e o último. O intervalo utilizado contém todos os elementos do primeiro ao final, mas não inclui o elemento indicado por último. Valor é o valor com o qual comparar os elementos.



número superior_limite ( num. primeiro , num. durar ,  valor, comparar comparação )

Nesse caso, a função binária comp produz um valor que pode ser convertido em bool e aceita dois parâmetros do mesmo tipo que os itens do intervalo. Se uma determinada condição determinar que o primeiro argumento não seja superior ao segundo, a função deve retornar um resultado verdadeiro e, caso contrário, deve retornar falso.





Como usar a função Upper_bound() em C++

A função upper_bound() pode ser usada para encontrar o limite superior de um valor em um intervalo classificado de elementos em várias situações. Por exemplo, podemos usá-lo para encontrar a posição de um elemento em uma matriz ou vetor classificado, ou para encontrar o próximo elemento maior em um conjunto ou mapa. Aqui estão alguns exemplos de como usar a função upper_bound() em C++:

Exemplo 1: Usando a função Upper_bound() para encontrar a posição de um elemento em uma matriz classificada

Aqui está um exemplo que usa a função upper_bound() para encontrar a posição de um elemento em uma matriz ordenada de inteiros e exibi-la na tela:



#include

#incluir

usando espaço para nome padrão ;

interno principal ( )

{

interno variedade [ ] = { quinze , 35 , Quatro cinco , 55 , 65 } ;

interno a = tamanho de ( variedade ) / tamanho de ( variedade [ 0 ] ) ;

corte << 'A matriz contém:' ;

para ( interno eu = 0 ; eu < a ; eu ++ )

corte << variedade [ eu ] << ' ' ;

corte << ' \n ' ;

interno b = Quatro cinco ; //declara e inicializa um valor

interno * p = limite superior ( matriz, matriz + um, b ) ;

corte << 'Limite superior de' << b << 'está na posição:' << ( p - variedade ) << ' \n ' ; // exibe a posição usando aritmética de ponteiro

retornar 0 ;

}

Primeiro, o programa define os arquivos de cabeçalho necessários e a matriz contendo números e, em seguida, usa a função sizeof() para obter o tamanho da matriz. Em seguida, um loop for é usado para exibir os elementos do array e então um inteiro é declarado cuja posição no array é determinada usando o ponteiro e é exibido na saída:

Exemplo 2: Usando a função Upper_bound() para encontrar o próximo elemento maior em um conjunto

Aqui está um exemplo de código que usa a função upper_bound() para encontrar o próximo elemento maior que um determinado valor em um conjunto de números inteiros e exibi-lo na tela:

#include

#incluir

#incluir

usando espaço para nome padrão ;

interno principal ( )

{

definir < interno > num = { quinze , 25 , 35 , Quatro cinco , 55 } ; //declara e inicializa um conjunto de inteiros

corte << 'Números dados:' ;

para ( auto a : num ) // exibe os elementos do conjunto usando loop for baseado em intervalo

corte << a << ' ' ;

corte << ' \n ' ;

interno a = Quatro cinco ; //declara e inicializa um valor

auto isto = limite superior ( num. começar ( ) , num. fim ( ) , a ) ; //encontra o limite superior de x no conjunto usando upper_bound()

se ( isto ! = num. fim ( ) ) // verifica se o iterador é válido

corte << 'O próximo número superior a' << a << ' é ' << * isto << ' \n ' ; // exibe o elemento usando o operador de desreferência

outro

corte << 'Não existe número maior que' << a << ' \n ' ; // exibe uma mensagem se tal elemento não for encontrado

retornar 0 ;

}

Primeiro o código define os arquivos de cabeçalho necessários e depois um vetor de cinco elementos é definido, em seguida o vetor é exibido usando a palavra-chave auto, pois pode definir automaticamente o tipo de dados dos elementos. Em seguida, é declarada uma variável com valor 45 que é então comparada com o vetor definido usando a função upper_bound() e depois exibe o resultado da comparação:

Conclusão

A função upper_bound() é uma função que retorna um iterador apontando para o primeiro elemento em um intervalo classificado que é maior que um determinado valor. Para localizar o primeiro número em um intervalo maior ou igual a um número especificado, use a função upper_bound() em C++. Isso pode ser útil para tarefas como encontrar o próximo número mais alto em uma lista ou encontrar o primeiro elemento em uma matriz classificada que seja maior que um determinado limite.