У овом детаљном туторијалу показаћемо рад стабле_сорт() у Ц++.
Како користити функцију стабле_сорт() у Ц++
У Ц++, стабле_сорт() је стандардни алгоритам библиотеке који распоређује елементе у растућем редоследу и задржава исти ред за еквивалентне елементе. То значи да ако су два елемента једнака, елемент који се први појави у контејнеру пре сортирања ће се и даље појавити први на сортираној листи. Ова функција ради тако што више пута дели контејнер (низови, вектори, повезане листе), сортира их одвојено, а затим их спаја да би се добио сортирани контејнер. Долази под <алгоритам> датотека заглавља.
Општа синтакса за коришћење стабле_сорт() у Ц++ је:
стабле_сорт ( Прво РандомАццессИтератор , РандомАццессИтератор ласт ) ;
Ево, први је итератор који показује на први елемент у опсегу који треба сортирати, и последњи је итератор који показује на елемент после последњег елемента у опсегу који треба сортирати.
Тхе стабле_сорт() функција користи неопадајући ред да сортира уносе у опсегу [први, последњи], тј. од најмањег до највећег елемента. Функција подразумевано упоређује ставке кроз оператор мање од (<).
Пример 1
Размотрите доњи пример кода, у овом коду смо креирали векторска листа и иницијализовао га неким вредностима. Затим смо користили стабле_сорт() да сортира вредности датог вектора у растућем редоследу. Несортирани и сортирани вектори се штампају на конзоли помоћу петље засноване на опсегу.
#инцлуде <иостреам>#инцлуде <вектор>
#инцлуде <алгоритам>
користећи простор имена стд ;
инт главни ( )
{
вектор < инт > листа = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;
цоут << 'Бројеви пре сортирања: ' ;
за сваки ( листа. започети ( ) , листа. крај ( ) , [ ] ( инт Икс ) {
цоут << Икс << ' ' ;
} ) ;
стабле_сорт ( листа. започети ( ) , листа. крај ( ) ) ;
цоут << ' \н Бројеви након сортирања: ' ;
за сваки ( листа. започети ( ) , листа. крај ( ) , [ ] ( инт Икс ) {
цоут << Икс << ' ' ;
} ) ;
повратак 0 ;
}
Пример 2
У доле наведеном примеру, креирали смо целобројни низ и иницијализовали га неким вредностима. Затим подразумевано, тхе стабле_сорт() сортира елементе у растућем редоследу:
#инцлуде <иостреам>#инцлуде <алгоритам>
користећи простор имена стд ;
инт главни ( )
{
инт низ [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;
инт н = величина ( низ ) / величина ( низ [ 0 ] ) ;
цоут << „Оригинални низ је: \н ' ;
за ( инт и = 0 ; и < н ; ++ и ) {
цоут << низ [ и ] << ' ' ;
}
стабле_сорт ( низ , низ + н ) ;
цоут << ' \н Низ након сортирања је: \н ' ;
за ( инт и = 0 ; и < н ; ++ и ) {
цоут << низ [ и ] << ' ' ;
}
повратак 0 ;
}
Пример 3
Тхе стабле_сорт узима трећи параметар да одреди редослед сортирања елемента. У доњем примеру користили смо већи() функција са стабле_сорт() да сортира елементе низа у опадајућем редоследу
#инцлуде <иостреам>#инцлуде <алгоритам>
користећи простор имена стд ;
инт главни ( )
{
инт низ [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;
инт н = величина ( низ ) / величина ( низ [ 0 ] ) ;
цоут << „Оригинални низ: \н ' ;
за ( инт и = 0 ; и < н ; ++ и ) {
цоут << низ [ и ] << ' ' ;
}
стабле_сорт ( низ , низ + н , веће < инт > ( ) ) ;
цоут << ' \н Низ након сортирања: \н ' ;
за ( инт и = 0 ; и < н ; ++ и ) {
цоут << низ [ и ] << ' ' ;
}
повратак 0 ;
}
Суштина
Тхе стабле_сорт() функција у Ц++ је стандардни алгоритам библиотеке који се користи за сортирање елемената у контејнеру у неопадајућем редоследу уз одржавање релативног редоследа елемената у контејнеру са истим вредностима. Може се користити са различитим контејнерима као што су низови, вектори и повезане листе. Поред тога, потребан је трећи параметар да би се одредио редослед за сортирање елемената.