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

La description

La fonction C ++ std::algorithm::lexicographical_compare()teste si une plage est lexicographiquement inférieure à une autre ou non. Une comparaison lexicographique est le type de comparaison généralement utilisé pour trier les mots par ordre alphabétique dans les dictionnaires.

Déclaration

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

C ++ 98

template <class InputIterator1, class InputIterator2>
bool lexicographical_compare(InputIterator1 first1, InputIterator1 last1,
   InputIterator2 first2, InputIterator2 last2);

Paramètres

  • first1 - Entrer l'itérateur à la position initiale de la première séquence.

  • last1 - Entrer l'itérateur à la position finale de la première séquence.

  • first2 - Entrer l'itérateur à la position initiale de la deuxième séquence.

  • last2 - Entrer l'itérateur à la position finale de la deuxième séquence.

Valeur de retour

Renvoie true si une plage est lexicographiquement inférieure à une seconde, sinon renvoie false.

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

2 * min (N1, N2), où N1 = std :: distance (first1, last1) et N2 = std :: distance (first2, last2).

Exemple

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

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

using namespace std;

int main(void) {
   vector<string> v1 = {"One", "Two", "Three"};
   vector<string> v2 = {"one", "two", "three"};
   bool result;

   result = lexicographical_compare(v1.begin(), v1.end(), v2.begin(), v2.end());

   if (result == true)
      cout << "v1 is less than v2." << endl;

   v1[0] = "two";

   result = lexicographical_compare(v1.begin(), v1.end(), v2.begin(), v2.end());

   if (result == false)
      cout << "v1 is not less than v2." << endl;

   return 0;
}

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

v1 is less than v2.
v1 is not less than v2.