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í „
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.
“
- “
” 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++.