O que é o método lower_Bound() em C++

O Que E O Metodo Lower Bound Em C



A linguagem de programação C++ oferece uma ampla gama de funções e métodos amplamente utilizados. O método lower_bound() é uma função usada para localizar a primeira ocorrência de um determinado valor em um contêiner classificado. Este artigo aborda a sintaxe, parâmetros, valores de retorno e um código de exemplo para o método lower_bound() em C++.

O que é o método lower_bound()?

O método lower_bound() em C++ localiza a primeira ocorrência de um determinado valor em um contêiner classificado. Faz parte da biblioteca em C++ e é usado para realizar pesquisas binárias em arrays, vetores e outros contêineres classificados. O método lower_bound() retorna um iterador que aponta para o primeiro elemento em um intervalo especificado de um contêiner, que não é menor que o valor fornecido.

Sintaxe







O método lower_bound() em C++ tem duas variações: uma sintaxe padrão e uma personalizada.



Sintaxe padrão

A sintaxe padrão usa um ForwardIterator apontando para o primeiro e o último elemento no intervalo a ser pesquisado, respectivamente, e um valor para comparar os elementos no intervalo.



ForwardIterator limite inferior ( ForwardIterator primeiro , ForwardIterator último , const T & val ) ;

Sintaxe personalizada

A sintaxe personalizada também inclui uma função de predicado binário definida pelo usuário que segue uma ordem fraca estrita para ordenar os elementos.





ForwardIterator limite inferior ( ForwardIterator primeiro , ForwardIterator último , const T & val , Compare comp ) ;

Parâmetros

O método lower_bound() em C++ usa três parâmetros.

Primeiro último: Os dois primeiros parâmetros, “first” e “last”, determinam o intervalo [first, last) dentro do qual o método busca o limite inferior. O intervalo é especificado por dois parâmetros, a saber, 'primeiro' e 'último'. O intervalo inclui todos os elementos entre os iteradores “primeiro” e “último”, mas exclui o elemento apontado pelo iterador “último”.



Val: O terceiro parâmetro do método lower_bound() é referido como “val”. Representa o valor do limite inferior que precisa ser encontrado dentro do intervalo especificado. Quando o método lower_bound() é chamado, ele procura o primeiro elemento dentro do intervalo especificado de um contêiner que seja maior ou igual ao valor fornecido “val”.

comp: O método lower_bound() também pode aceitar uma função de comparação binária como seu quarto parâmetro. Leva dois argumentos: O tipo apontado pelo ForwardIterator , e o segundo é val . A função então retorna um valor booleano baseado em uma comparação entre os dois argumentos. O argumento comp não altera nenhum de seus argumentos e pode ser apenas um ponteiro de função ou um objeto de função.

Valor de retorno

O lower_bound() retorna um iterador que aponta para o primeiro elemento que é maior ou igual ao val . Se todos os elementos no intervalo especificado de um contêiner forem menores que o valor fornecido val , o método lower_bound() retorna um iterador apontando para o último elemento do intervalo e, se todos os elementos forem maiores que val , fornece um iterador que aponta para o primeiro elemento no intervalo.

Exemplo de código

Este código C++ demonstra o uso da função std::lower_bound() para localizar o primeiro elemento em um vetor classificado que não seja menor que um determinado valor.

#include

int principal ( )

{

// Vetor de entrada

std :: vetor < dobro > valores { 10 , quinze , vinte , 25 , 30 } ;

// Imprimir vetor

std :: cout << 'O vetor contém:' ;

para ( não assinado int eu = 0 ; eu < valores. tamanho ( ) ; eu ++ )

std :: cout << ' ' << valores [ eu ] ;

std :: cout << ' \n ' ;

std :: vetor < dobro >:: iterador it1 , it2 , it3 ;

// padrão :: limite inferior

it1 = std :: limite inferior ( valores. começar ( ) , valores. fim ( ) , 13 ) ;

it2 = std :: limite inferior ( valores. começar ( ) , valores. fim ( ) , 23 ) ;

it3 = std :: limite inferior ( valores. começar ( ) , valores. fim ( ) , 33 ) ;

std :: cout

<< ' \n lower_bound para o elemento 13 na posição: '

<< ( it1 - valores. começar ( ) ) ;

std :: cout

<< ' \n lower_bound para o elemento 23 na posição: '

<< ( it2 - valores. começar ( ) ) ;

std :: cout

<< ' \n lower_bound para o elemento 33 na posição: '

<< ( it3 - valores. começar ( ) ) ;

retornar 0 ;

}

O código começa definindo um std::vector do tipo valores de nome duplo e inicializando-o com alguns valores. Em seguida, imprime os elementos do vetor usando um loop for.

Em seguida, o código declara três variáveis ​​std::vector::iterator denominadas it1, it2 e it3. Essas variáveis ​​serão usadas para armazenar os resultados da chamada de std::lower_bound() no vetor de valores com diferentes argumentos.

A função std::lower_bound() é chamada com três valores diferentes: 13, 23 e 33. Em cada chamada, lower_bound() fornece um iterador que aponta para o primeiro elemento no vetor que é maior ou igual ao valor especificado.

O código então imprime as posições desses elementos no vetor subtraindo o iterador values.begin() do iterador retornado por std::lower_bound(), que fornece o índice do elemento no vetor.

Saída

Conclusão

O método lower_bound() em C++ localiza a primeira ocorrência de um determinado valor em um contêiner classificado. Faz parte da biblioteca em C++ e pode ser usado para realizar pesquisas binárias em arrays, vetores e outros contêineres classificados. O método fornece um iterador que aponta para o primeiro elemento em um intervalo que não é menor que o valor fornecido. Leia mais sobre o método lower_bound() neste artigo.