Com ordenar vectors utilitzant la funció lexicographical_compare() C++

Com Ordenar Vectors Utilitzant La Funcio Lexicographical Compare C



La funció és un conjunt d'instruccions que realitzen una tasca específica. S'utilitza per fer que el codi sigui organitzat, modular i reutilitzable. En C++, les funcions juguen un paper important per simplificar el codi. Per exemple, el ' comparació_lexicogràfica() La funció s'utilitza per comparar dues seqüències o rangs lexicogràficament.

En aquesta guia completa, demostrarem la funció 'lexicographical_compare()' en C++ amb el programa.

Quina és la funció 'lexicographical_compare()' en C++

En C++, la funció “lexicographical_compare()” és una operació molt eficaç per comparar i ordenar elements en una seqüència (ordre lexicogràfic). Proporciona la facilitat per determinar l'ordre respectiu que és el resultat de la comparació de seqüències, com ara rangs i cadenes. Aquesta funció és accessible en C++ utilitzant el ' ” fitxer de capçalera.







Sintaxi



Aquí teniu la sintaxi de la funció 'lexicographical_compare()' en C++:



plantilla < classe InputIter1, classe InputIter2 >
bool comparació_lexicogràfica ( InputIter1 primer1, InputIter1 darrer1, InputIter2 primer2, InputIter2 darrer2 ) ;

Segons el codi proporcionat anteriorment, el ' comparació_lexicogràfica() La funció accepta dos parells d'intervals el ' primer 1 ' i ' darrer 1 ” iteradors d'entrada per al primer rang i “ primer 2 ' i ' darrer 2 ” iteradors d'entrada per al segon d'interval. Coincideix ambdós elements d'interval en ordre lexicogràfic.





Tipus de retorn: Retorna el valor booleà (vertader o fals). Tornarà true quan el primer rang sigui lexicogràficament més petit que el segon rang, en cas contrari, retorna fals.

Excepcions: Si es troba un error durant la comparació, generarà una excepció.



Com ordenar vectors utilitzant la funció lexicographical_compare() C++

La funció 'lexicographical_compare()' s'utilitza sovint en tècniques d'ordenació per esbrinar l'ordre de l'element. Coincideix amb l'ordre respectiu dels elements fins que s'acaba el rang.

Exemple de la funció lexicograpical_compare() Ordena i compara els vectors de cadena

Vegem l'exemple proporcionat que demostra el ' ordenar () ' mètode amb el ' comparació_lexicogràfica() ”:

#inclou
#inclou
#inclou
utilitzant espai de noms std ;

Aquí:

  • ” s'utilitza per a les operacions d'entrada i sortida.

” és una classe de contenidor de biblioteca estàndard de C++ i s'utilitza per contenir plantilles que ofereixen capacitats de matriu dinàmica.

  • El fitxer de capçalera s'utilitza per accedir al mètode 'sort()' per a la funció 'lexicographical_compare()'.
  • utilitzant l'espai de noms std ” es coneix com una directiva que utilitza tots els noms de l'espai de noms sense esmentar explícitament el prefix “std”.

A continuació, dins del ' principal () ', hem inicialitzat dos vectors' vector1 ' i ' vector2 ” amb la mateixa corda. Després d'això, utilitzeu el ' ordenar () ” mètode per ordenar els elements per ordre lexicogràfic d'ambdós vectors amb “ vect1.begin() ' i ' vector1.end() rang d'iteradors per a 'vect1' i ' vect2.begin() ' i ' vector2.end() 'interval per a 'vect2'. Aleshores, va invocar el ' comparació_lexicogràfica() ” funció que pren quatre arguments per als dos vectors.

Els resultats es desaran amb ' bool ' escriviu el ' resultat ” variable i retorna true si l'interval “vect1” és lexicogràficament més petit que l'interval “vect2”, i fals en cas contrari. Finalment, apliqueu el ' si ” declaració per mostrar els resultats. Si el ' resultat ' és cert, vol dir que 'vect1' és lexicogràficament ' > ” que “vect2”. En cas contrari, s'executarà la condició else:

int principal ( ) {
vector < corda > vector1 = { 'primavera' , 'Estiu' , 'Tardor' , 'Hivern' } ;
vector < corda > vector2 = { 'primavera' , 'Estiu' } ;

ordenar ( vector1. començar ( ) , vector1. final ( ) ) ;
ordenar ( vector2. començar ( ) , vector2. final ( ) ) ;
// compara ambdós vectors utilitzant lexicographical_compare()
bool resultat = comparació_lexicogràfica (
vector1. començar ( ) , vector1. final ( ) ,
vector2. començar ( ) , vector2. final ( )
) ;

si ( resultat ) {
cout << 'vect1 és lexicogràficament més gran que vect2' << endl ;
} altra cosa si ( comparació_lexicogràfica (
vector2. començar ( ) , vector2. final ( ) ,
vector1. començar ( ) , vector1. final ( )
) ) {
cout << 'vect1 és lexicogràficament menor que vect2' << endl ;
} altra cosa {
cout << 'vect1 és lexicogràficament igual a vect2' << endl ;
}
tornar 0 ;
}

Sortida

Això és tot! Heu après sobre el ' comparació_lexicogràfica() ” funció en C++.

Conclusió

En C++, la funció 'lexicographical_compare()' s'utilitza per ordenar i fer coincidir la seqüència d'elements en ordre lèxic. L'algorisme d'ordenació amb el mètode 'lexicograpgical_compare()' està àmpliament implementat per trobar l'ordre relatiu. En aquest tutorial, hem demostrat la funció 'lexicographical_compare()' en C++.