Bibliothèque d'algorithmes C ++ - fonction lower_bound ()

La description

La fonction C ++ std::algorithm::lower_bound()trouve le premier élément au moins égal à la valeur donnée. Cette fonction exclut l'élément dans l'ordre trié. Il utilise l' opérateur < pour la comparaison.

Déclaration

Voici la déclaration de la fonction std :: algorithm :: lower_bound () sous forme d'en-tête std :: algorithme.

C ++ 98

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

Paramètres

  • first - Transférer l'itérateur à la position initiale.

  • last - Transférer l'itérateur vers la position finale.

  • val - Valeur de la borne inférieure à rechercher dans la plage.

Valeur de retour

Renvoie un itérateur vers le premier élément au moins égal à la valeur donnée. Si tous les éléments de la plage comparent moins de val , la fonction retourne en dernier .

Des exceptions

Lève une exception si la comparaison d'éléments ou une opération sur un itérateur lève une exception.

Veuillez noter que des paramètres non valides provoquent un comportement non défini.

Complexité temporelle

Linéaire.

Exemple

L'exemple suivant montre l'utilisation de la fonction std :: algorithm :: 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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

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