Biblioteca de algoritmos C ++ - función lower_bound ()

Descripción

La función C ++ std::algorithm::lower_bound()encuentra el primer elemento no menor que el valor dado. Esta función excluye elementos en orden ordenado. Utiliza el operador < para comparar.

Declaración

A continuación se muestra la declaración de la función std :: algorítm :: lower_bound () del encabezado std :: algorítmico.

C ++ 98

template <class ForwardIterator, class T>
ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last,
   const T& val);

Parámetros

  • first - Reenviar iterador a la posición inicial.

  • last - Reenviar iterador a la posición final.

  • val - Valor del límite inferior para buscar en el rango.

Valor devuelto

Devuelve un iterador al primer elemento no menos que el valor dado. Si todos los elementos del rango se comparan con menos de val , la función devuelve el último .

Excepciones

Lanza una excepción si la comparación de elementos o una operación en un iterador arroja una excepción.

Tenga en cuenta que los parámetros no válidos provocan un comportamiento indefinido.

Complejidad del tiempo

Lineal.

Ejemplo

El siguiente ejemplo muestra el uso de la función std :: algorítm :: lower_bound ().

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(void) {
   vector<int> v = {1, 2, 5, 13, 14};
   auto it = lower_bound(v.begin(), v.end(), 2);

   cout << "First element which greater than 2 is " << *it << endl;

   it = lower_bound(v.begin(), v.end(), 30);

   if (it == end(v))
      cout << "All elements are less than 30" << endl;
   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

First element which greater than 2 is 2
All elements are less than 30