Cómo ordenar vectores usando la función lexicographical_compare() C++

Como Ordenar Vectores Usando La Funcion Lexicographical Compare C



La función es un conjunto de instrucciones que realizan una tarea específica. Se utiliza para hacer que el código sea organizado, modular y reutilizable. En C++, las funciones juegan un papel importante para simplificar el código. Por ejemplo, el “ lexicographical_compare() La función ” se utiliza para comparar lexicográficamente dos secuencias o rangos.

En esta guía completa, demostraremos la función “lexicographical_compare()” en C++ con el programa.

¿Qué es la función “lexicographical_compare()” en C++?

En C++, la función “lexicograpfical_compare()” es una operación muy efectiva para comparar y ordenar elementos en una secuencia (orden lexicográfico). Proporciona la posibilidad de determinar el orden respectivo que es el resultado de comparar secuencias, como rangos y cadenas. Se puede acceder a esta función en C ++ usando el ' ' archivo de cabecera.







Sintaxis



Aquí está la sintaxis de la función “lexicographical_compare()” en C++:



plantilla < clase EntradaIter1, clase EntradaIter2 >
bool comparación_lexicográfica ( InputIter1 primero1, InputIter1 último1, InputIter2 primero2, InputIter2 último2 ) ;

De acuerdo con el código proporcionado anteriormente, el ' lexicographical_compare() La función ' acepta dos pares de rangos el ' primero1 ' y ' ultimo1 ” iteradores de entrada para el primer rango y el “ primero2 ' y ' últimos2 iteradores de entrada para el segundo rango. Coincide con ambos elementos de rango en orden lexicográfico.





Tipo de devolución: Devuelve el valor booleano (verdadero o falso). Devolverá verdadero cuando el primer rango sea lexicográficamente más pequeño que el segundo rango; de lo contrario, devolverá falso.

Excepciones: Si se encuentra un error durante la comparación, generará una excepción.



Cómo ordenar vectores usando la función lexicographical_compare() C++

La función “lexicographical_compare()” se utiliza con frecuencia en las técnicas de clasificación para averiguar el orden de los elementos. Coincide con el orden respectivo de los elementos hasta que finaliza el rango.

Ejemplo de la función lexicograpical_compare() Ordenar y comparar los vectores de cadena

Veamos el ejemplo provisto que demuestra el “ clasificar() ” método con el “ lexicographical_compare() ”:

#incluir
#incluir
#incluye
usando espacio de nombres estándar ;

Aquí:

  • ” se utiliza para las operaciones de entrada y salida.

” es una clase de contenedor de biblioteca estándar de C++ y se usa para contener plantillas que ofrecen capacidades de matriz dinámica.

  • El archivo de encabezado ” se utiliza para acceder al método “sort()” para la función “lexicographical_compare()”.
  • usando el espacio de nombres estándar ” se conoce como una directiva que usa todos los nombres del espacio de nombres sin mencionar explícitamente el prefijo “std”.

A continuación, dentro del “ principal() 'función, inicializamos dos vectores' vect1 ' y ' vect2 ” con la misma cuerda. Después de esto, usó el “ clasificar() ” método para ordenar los elementos en orden lexicográfico de ambos vectores con “ vect1.begin() ' y ' vector1.fin() ” rango de iteradores para “vect1”, y “ vect2.begin() ' y ' vect2.end() ” rango para “vect2”. Luego, invocó el “ lexicographical_compare() ” función que toma cuatro argumentos para ambos vectores.

Los resultados se guardarán con “ bool ” escriba en el “ resultado ” y devuelve verdadero si el rango “vect1” es lexicográficamente más pequeño que el rango “vect2”, y falso en caso contrario. Por último, aplique el “ si ” declaración para mostrar los resultados. Si el ' resultado ” es cierto significa que el “vect1” es lexicográficamente “ > ” que “vect2”. De lo contrario, se ejecutará la condición else:

En t principal ( ) {
vector < cadena > vect1 = { 'Primavera' , 'Verano' , 'Otoño' , 'Invierno' } ;
vector < cadena > vect2 = { 'Primavera' , 'Verano' } ;

clasificar ( vect1. comenzar ( ) , vect1. fin ( ) ) ;
clasificar ( vect2. comenzar ( ) , vect2. fin ( ) ) ;
    // comparar ambos vectores usando lexicographical_compare()
    bool resultado = comparación_lexicográfica (
vect1. comenzar ( ) , vect1. fin ( ) ,
vect2. comenzar ( ) , vect2. fin ( )
    ) ;

    si ( resultado ) {
        cout << 'vect1 es lexicográficamente mayor que vect2' << final ;
    } demás si ( comparación_lexicográfica (
vect2. comenzar ( ) , vect2. fin ( ) ,
vect1. comenzar ( ) , vect1. fin ( )
    ) ) {
        cout << 'vect1 es lexicográficamente menor que vect2' << final ;
    } demás {
        cout << 'vect1 es lexicográficamente igual a vect2' << final ;
    }
    devolver 0 ;
}

Producción

¡Eso es todo! Has aprendido sobre el “ lexicographical_compare() ” función en C++.

Conclusión

En C++, la función “lexicographical_compare()” se usa para clasificar y hacer coincidir la secuencia de elementos en orden léxico. El algoritmo de clasificación con el método “lexicograpgical_compare()” está ampliamente implementado para encontrar el orden relativo. En este tutorial, demostramos la función “lexicographical_compare()” en C++.