V tomto podrobnom návode si ukážeme fungovanie stable_sort() v C++.
Ako používať funkciu stable_sort() v C++
V C++ je stable_sort() je štandardný algoritmus knižnice, ktorý usporiada prvky vo rastúcom poradí a zachováva rovnaké poradie pre ekvivalentné prvky. To znamená, že ak sú dva prvky rovnaké, prvok, ktorý sa objaví v kontajneri pred zoradením ako prvý, sa bude stále zobrazovať ako prvý v zoradenom zozname. Táto funkcia funguje tak, že opakovane rozdeľuje kontajner (polia, vektory, prepojené zoznamy), triedi ich samostatne a potom ich spája, aby sa získal triedený kontajner. Spadá pod
Všeobecná syntax pre použitie stable_sort() v C++ je:
stable_sort ( Najprv RandomAccessIterator , RandomAccessIterator posledný ) ;
Tu, najprv je iterátor ukazujúci na prvý prvok v rozsahu, ktorý sa má zoradiť, a posledný je iterátor ukazujúci na prvok za posledným prvkom v rozsahu, ktorý sa má zoradiť.
The stable_sort() funkcia používa neklesajúce poradie na zoradenie záznamov v rozsahu [prvý, posledný], t. j. od najmenšieho po najväčší prvok. Funkcia štandardne porovnáva položky cez operátor menej ako (<).
Príklad 1
Zvážte nižšie uvedený príklad kódu, v tomto kóde sme vytvorili vektorový zoznam a inicializoval ho s niektorými hodnotami. Ďalej sme použili stable_sort() na zoradenie hodnôt daného vektora vo vzostupnom poradí. Nezoradené a zoradené vektory sa vytlačia na konzole pomocou slučky založenej na rozsahu.
#include#include
#include
pomocou menného priestoru std ;
int Hlavná ( )
{
vektor < int > zoznam = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;
cout << 'Čísla pred triedením: ' ;
pre každý ( zoznam. začať ( ) , zoznam. koniec ( ) , [ ] ( int X ) {
cout << X << '' ;
} ) ;
stable_sort ( zoznam. začať ( ) , zoznam. koniec ( ) ) ;
cout << ' \n Čísla po zoradení: ' ;
pre každý ( zoznam. začať ( ) , zoznam. koniec ( ) , [ ] ( int X ) {
cout << X << '' ;
} ) ;
vrátiť 0 ;
}
Príklad 2
V nižšie uvedenom príklade sme vytvorili celočíselné pole a inicializovali ho s niektorými hodnotami. Potom štandardne, stable_sort() triedi prvky vo vzostupnom poradí:
#include#include
pomocou menného priestoru std ;
int Hlavná ( )
{
int pole [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;
int n = veľkosť ( pole ) / veľkosť ( pole [ 0 ] ) ;
cout << 'Pôvodné pole je: \n ' ;
pre ( int i = 0 ; i < n ; ++ i ) {
cout << pole [ i ] << '' ;
}
stable_sort ( pole , pole + n ) ;
cout << ' \n Pole po zoradení je: \n ' ;
pre ( int i = 0 ; i < n ; ++ i ) {
cout << pole [ i ] << '' ;
}
vrátiť 0 ;
}
Príklad 3
The stable_sort tretí parameter určuje poradie triedenia prvku. V nižšie uvedenom príklade sme použili väčší() funkcia s stable_sort() na zoradenie prvkov poľa v zostupnom poradí
#include#include
pomocou menného priestoru std ;
int Hlavná ( )
{
int pole [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;
int n = veľkosť ( pole ) / veľkosť ( pole [ 0 ] ) ;
cout << 'Pôvodné pole: \n ' ;
pre ( int i = 0 ; i < n ; ++ i ) {
cout << pole [ i ] << '' ;
}
stable_sort ( pole , pole + n , väčší < int > ( ) ) ;
cout << ' \n Pole po zoradení: \n ' ;
pre ( int i = 0 ; i < n ; ++ i ) {
cout << pole [ i ] << '' ;
}
vrátiť 0 ;
}
Spodná čiara
The stable_sort() funkcia v C++ je štandardný knižničný algoritmus používaný na triedenie prvkov v kontajneri v neklesajúcom poradí pri zachovaní relatívneho poradia prvkov v kontajneri s rovnakými hodnotami. Dá sa použiť s rôznymi kontajnermi, ako sú polia, vektory a prepojené zoznamy. Okrem toho je potrebný tretí parameter na určenie poradia triedenia prvkov.