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

La description

La fonction C ++ std::algorithm::is_sorted_until()trouve le premier élément non trié de la séquence. Il utilise une fonction binaire pour la comparaison.

Déclaration

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

C ++ 11

template <class ForwardIterator, class Compare>
ForwardIterator is_sorted_until(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 un itérateur vers le premier élément non trié. Si toute la plage est triée, elle retourne en dernier .

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_until ().

#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'};

   auto it = is_sorted_until(v.begin(), v.end());

   cout << "First unsorted element = " << *it << endl;

   it = is_sorted_until(v.begin(), v.end(), ignore_case);

   if (it == end(v))
      cout << "Entire vector is sorted." << endl;

   return 0;
}

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

First unsorted element = C
Entire vector is sorted.