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.