Jak používat funkci stable_sort() v C++

Jak Pouzivat Funkci Stable Sort V C



V C++ existují různé funkce pro řazení prvků sekvence v určitém pořadí. Podobně jako funkce sort se stable_sort používá k řazení prvků v rozsahu (první, poslední). Klíčový rozdíl mezi nimi je v tom, že stable_sort zachovává relativní pořadí prvků se stejnými hodnotami.

V tomto podrobném tutoriálu si ukážeme fungování stable_sort() v C++.

Jak používat funkci stable_sort() v C++

V C++ je stable_sort() je standardní algoritmus knihovny, který uspořádává prvky ve vzrůstajícím pořadí a zachovává stejné pořadí pro ekvivalentní prvky. To znamená, že pokud jsou dva prvky stejné, prvek, který se objeví jako první v kontejneru před řazením, se stále objeví jako první v seřazeném seznamu. Tato funkce funguje tak, že opakovaně rozděluje kontejner (pole, vektory, propojené seznamy), třídí je samostatně a poté je spojuje, aby se získal setříděný kontejner. Spadá pod hlavičkový soubor.







Obecná syntaxe pro použití stable_sort() v C++ je:



stable_sort ( RandomAccessIterator jako první , RandomAccessIterator jako poslední ) ;

Tady, První je iterátor ukazující na první prvek v rozsahu, který má být seřazen, a poslední je iterátor ukazující na prvek za posledním prvkem v rozsahu, který má být seřazen.



The stable_sort() Funkce používá neklesající pořadí k řazení položek v rozsahu [první, poslední], tj. od nejmenšího po největší prvek. Funkce ve výchozím nastavení porovnává položky prostřednictvím operátor menší než (<).





Příklad 1

Zvažte níže uvedený příklad kódu, v tomto kódu jsme vytvořili vektorový seznam a inicializoval jej s některými hodnotami. Dále jsme použili stable_sort() seřadit hodnoty daného vektoru ve vzestupném pořadí. Netříděné a seřazené vektory jsou vytištěny na konzole pomocí smyčky založené na rozsahu.

#include

#include

#include

pomocí jmenného prostoru std ;



int hlavní ( )

{

vektor < int > seznam = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;

cout << 'Čísla před řazením:' ;

pro každého ( seznam. začít ( ) , seznam. konec ( ) , [ ] ( int X ) {

cout << X << '' ;

} ) ;

stable_sort ( seznam. začít ( ) , seznam. konec ( ) ) ;

cout << ' \n Čísla po seřazení: ' ;

pro každého ( seznam. začít ( ) , seznam. konec ( ) , [ ] ( int X ) {

cout << X << '' ;

} ) ;



vrátit se 0 ;

}




Příklad 2

V níže uvedeném příkladu jsme vytvořili celočíselné pole a inicializovali jej s některými hodnotami. Poté ve výchozím nastavení stable_sort() seřadí prvky ve vzestupném pořadí:

#include

#include

pomocí jmenného prostoru std ;

int hlavní ( )

{

int pole [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

int n = velikost ( pole ) / velikost ( pole [ 0 ] ) ;

cout << 'Původní pole je: \n ' ;

pro ( int i = 0 ; i < n ; ++ i ) {

cout << pole [ i ] << '' ;

}

stable_sort ( pole , pole + n ) ;

cout << ' \n Pole po třídění je: \n ' ;

pro ( int i = 0 ; i < n ; ++ i ) {

cout << pole [ i ] << '' ;

}

vrátit se 0 ;

}

Příklad 3

The stable_sort bere třetí parametr k určení pořadí pro řazení prvku. V níže uvedeném příkladu jsme použili větší() funkce s stable_sort() seřadit prvky pole v sestupném pořadí

#include

#include

pomocí jmenného prostoru std ;

int hlavní ( )

{

int pole [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

int n = velikost ( pole ) / velikost ( pole [ 0 ] ) ;

cout << 'Původní pole: \n ' ;

pro ( int i = 0 ; i < n ; ++ i ) {

cout << pole [ i ] << '' ;

}

stable_sort ( pole , pole + n , větší < int > ( ) ) ;

cout << ' \n Pole po třídění: \n ' ;

pro ( int i = 0 ; i < n ; ++ i ) {

cout << pole [ i ] << '' ;

}

vrátit se 0 ;

}

Sečteno a podtrženo

The stable_sort() funkce v C++ je standardní knihovní algoritmus používaný k řazení prvků v kontejneru v neklesajícím pořadí při zachování relativního pořadí prvků v kontejneru se stejnými hodnotami. Lze jej použít s různými kontejnery, jako jsou pole, vektory a propojené seznamy. Navíc je potřeba třetí parametr k určení pořadí pro řazení prvků.