Jak třídit vektory pomocí funkce lexicographical_compare() C++

Jak Tridit Vektory Pomoci Funkce Lexicographical Compare C



Funkce je soubor instrukcí, které provádějí konkrétní úkol. Používá se k tomu, aby byl kód organizovaný, modulární a znovu použitelný. V C++ hrají funkce důležitou roli pro zjednodušení kódu. Například „ lexicographical_compare() ” se používá k lexikografickému porovnání dvou sekvencí nebo rozsahů.

V této obsáhlé příručce si s programem předvedeme funkci „lexicographical_compare()“ v C++.

Co je funkce „lexicographical_compare()“ v C++

V C++ je funkce „lexicographical_compare()“ velmi efektivní operací pro porovnání a řazení prvků v sekvenci (lexikografickém pořadí). Poskytuje možnost určit příslušné pořadí, které je výsledkem porovnávání sekvencí, jako jsou rozsahy a řetězce. Tato funkce je dostupná v C++ pomocí „ ” hlavičkový soubor.







Syntax



Zde je syntaxe funkce „lexicographical_compare()“ v C++:



šablona < třída InputIter1, třída InputIter2 >
bool lexikografický_porovnat ( InputIter1 first1, InputIter1 last1, InputIter2 first2, InputIter2 last2 ) ;

Podle výše uvedeného kódu „ lexicographical_compare() Funkce přijímá dva páry rozsahů, první1 ' a ' poslední1 ' iterátory vstupu pro první rozsah a ' první2 ' a ' poslední2 ” vstupní iterátory pro rozsah sekund. Shoduje se s oběma prvky rozsahu v lexikografickém pořadí.





Typ vrácení: Vrací booleovskou hodnotu (true nebo false). Vrátí hodnotu true, když je první rozsah lexikograficky menší než druhý rozsah, jinak vrátí hodnotu false.

Výjimky: Pokud je během porovnávání nalezena chyba, vyvolá výjimku.



Jak třídit vektory pomocí funkce lexicographical_compare() C++

Funkce „lexicographical_compare()“ se často používá v technikách řazení ke zjištění pořadí prvku. Odpovídá příslušnému pořadí prvků, dokud nebude rozsah dokončen.

Příklad funkce lexicograpical_compare() Seřaďte a porovnejte vektory řetězců

Podívejme se na poskytnutý příklad, který demonstruje „ seřadit () “ metoda s “ lexicographical_compare() “:

#include
#include
#include
použitím jmenný prostor std ;

Tady:

  • “ se používá pro operace vstupu a výstupu.

” je standardní třída kontejnerů knihoven C++ a používá se k uchovávání šablon, které nabízejí funkce dynamického pole.

  • ” hlavičkový soubor se používá pro přístup k metodě “sort()” pro funkci “lexicographical_compare()”.
  • pomocí jmenného prostoru std ” se označuje jako direktiva, která používá všechna jména z jmenného prostoru, aniž by explicitně zmiňovala předponu „std“.

Dále uvnitř „ hlavní() 'funkce, inicializovali jsme dva vektory' vect1 ' a ' vect2 “ se stejným řetězcem. Poté použijte „ seřadit () ” metoda k řazení prvků v lexikografickém pořadí obou vektorů pomocí “ vect1.begin() ' a ' vector1.end() rozsah iterátorů pro „vect1“ a „ vect2.begin() ' a ' vect2.end() ” rozsah pro “vect2”. Poté vyvolal „ lexicographical_compare() ” funkce, která má čtyři argumenty pro oba vektory.

Výsledky se uloží pomocí „ bool “ zadejte „ výsledek ” a vrátí hodnotu true, pokud je rozsah „vect1“ lexikograficky menší než rozsah „vect2“, a v opačném případě hodnotu false. Nakonec použijte „ -li ” pro zobrazení výsledků. Pokud „ výsledek “ je pravda, to znamená, že „vect1“ je lexikograficky „ > “ než „vect2“. Jinak se provede podmínka else:

int hlavní ( ) {
vektor < tětiva > vect1 = { 'Jaro' , 'Léto' , 'Podzim' , 'Zima' } ;
vektor < tětiva > vect2 = { 'Jaro' , 'Léto' } ;

seřadit ( vect1. začít ( ) , vect1. konec ( ) ) ;
seřadit ( vect2. začít ( ) , vect2. konec ( ) ) ;
// porovnej oba vektory pomocí lexicographical_compare()
bool výsledek = lexikografický_porovnat (
vect1. začít ( ) , vect1. konec ( ) ,
vect2. začít ( ) , vect2. konec ( )
) ;

-li ( výsledek ) {
cout << 'vect1 je lexikograficky větší než vect2' << endl ;
} jiný -li ( lexikografický_porovnat (
vect2. začít ( ) , vect2. konec ( ) ,
vect1. začít ( ) , vect1. konec ( )
) ) {
cout << 'vect1 je lexikograficky menší než vect2' << endl ;
} jiný {
cout << 'vect1 se lexikograficky rovná vect2' << endl ;
}
vrátit se 0 ;
}

Výstup

To je vše! Dozvěděli jste se o „ lexicographical_compare() ” funkce v C++.

Závěr

V C++ se funkce „lexicographical_compare()“ používá k řazení a přiřazování posloupnosti prvků v lexikálním pořadí. Algoritmus řazení s metodou „lexicograpgical_compare()“ je široce implementován pro nalezení relativního pořadí. V tomto tutoriálu jsme demonstrovali funkci „lexicographical_compare()“ v C++.