Biblioteca de algoritmos C ++ - Función is_sorted_until ()
Descripción
La función C ++ std::algorithm::is_sorted_until()encuentra el primer elemento sin clasificar de la secuencia. 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_until () del encabezado std :: algorítmico.
C ++ 11
template <class ForwardIterator, class Compare>
ForwardIterator is_sorted_until(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 un iterador al primer elemento sin clasificar. Si se ordena todo el rango, regresa al final .
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_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;
}
Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:
First unsorted element = C
Entire vector is sorted.