Biblioteca de algoritmos C ++ - Función is_sorted ()

Descripción

La función C ++ std::algorithm::is_sorted()comprueba si el rango está ordenado o no. Utiliza una función binaria para la comparación.

Declaración

A continuación se muestra la declaración de la función std :: algorítm :: is_sorted () del encabezado std :: algorítmico.

C ++ 11

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

Parámetros

  • first - Reenviar iterador a la posición inicial.

  • last - Reenviar iterador a la posición final.

  • comp - Una función binaria que acepta dos argumentos y devuelve bool.

Valor devuelto

Devuelve verdadero si el rango está ordenado; de lo contrario, devuelve falso.

Excepciones

Lanza una excepción si la función binaria o una operación en un iterador arroja una excepción.

Tenga en cuenta que los parámetros no válidos provocan un comportamiento indefinido.

Complejidad del tiempo

Lineal.

Ejemplo

El siguiente ejemplo muestra el uso de la función std :: algorítm :: 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;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

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