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
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.
#includeint 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
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