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

La description

La fonction C ++ std::algorithm::is_sorted()teste si la plage est triée ou non. Il utilise une fonction binaire pour la comparaison.

Déclaration

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

C ++ 11

template <class ForwardIterator, class Compare>
bool is_sorted (ForwardIterator first, ForwardIterator last, Compare comp);

Paramètres

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

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

  • comp - Une fonction binaire qui accepte deux arguments et renvoie bool.

Valeur de retour

Renvoie true si la plage est triée, sinon renvoie false.

Des exceptions

Lève une exception si la fonction binaire 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 :: is_sorted ().

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

using namespace std;

bool ignore_case(char a, char b) {
   return (tolower(a) == tolower(b));
}

int main(void) {
   vector<char> v = {'A', 'b', 'C', 'd', 'E'};
   bool result;

   result = is_sorted(v.begin(), v.end());

   if (result == false)
      cout << "Vector elements are not sorted in ascending order." << endl;

   result = is_sorted(v.begin(), v.end(), ignore_case);

   if (result == true)
      cout << "Vector elements are sorted in ascending order." << endl;

   return 0;
}

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

Vector elements are not sorted in ascending order.
Vector elements are sorted in ascending order.