Bibliothèque d'algorithmes C ++ - Fonction binary_search ()

La description

La fonction C ++ std::algorithm::binary_search()teste si la valeur existe dans une séquence triée ou non. Il utilise la fonction comp pour la comparaison.

Déclaration

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

C ++ 98

template <class ForwardIterator, class T, class Compare>
bool binary_search (ForwardIterator first, ForwardIterator last, 
   const T& val, Compare comp);

Paramètres

  • first - Transférer les itérateurs vers les positions initiales de la séquence recherchée.

  • last - Transférer les itérateurs vers les positions finales de la séquence recherchée.

  • val - Valeur à rechercher dans la plage.

  • comp - Fonction binaire qui accepte deux arguments et renvoie un booléen.

Valeur de retour

Renvoie vrai si la valeur existe, sinon faux.

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

Logarithmique dans la distance entre le premier et le dernier .

Exemple

L'exemple suivant montre l'utilisation de la fonction std :: algorithm :: binary_search ().

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

using namespace std;

bool comp(string s1, string s2) {
   return (s1 == s2);
}

int main(void) {
   vector<string> v = {"ONE", "Two", "Three"};
   bool result;

   result = binary_search(v.begin(), v.end(), "one", comp); 

   if (result == true)
      cout << "String \"one\" exist in vector." << endl;

   v[0] = "Ten";

   return 0;
}

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

String "one" exist in vector.