Būtinos sąlygos: std::rūšiuoti C++ , vektorius C++ kalboje , inicijuokite vektorių C++ .
CPP
java interviu klausimai
// C++ program to sort a vector in non-decreasing> // order.> #include> using> namespace> std;> > int> main()> {> >vector<>int>>v{ 1, 5, 8, 9, 6, 7, 3, 4, 2, 0};>> sort(v.begin(), v.end());> > >cout <<>'Sorted
'>;> >for> (>auto> x : v)> >cout << x <<>' '>;> > >return> 0;> }> |
>
>Išvestis
Sorted 0 1 2 3 4 5 6 7 8 9>
Kaip rūšiuoti mažėjančia tvarka?
sort() paima trečiąjį parametrą, kuris naudojamas norint nurodyti elementų rūšiavimo tvarką. Galime perduoti didesnę () funkciją, kad rūšiuotume mažėjančia tvarka. Ši funkcija atlieka palyginimą taip, kad didesni elementai būtų pateikiami anksčiau.
CPP
// C++ program to sort a vector in non-increasing> // order.> #include> using> namespace> std;> > int> main()> {> >vector<>int>>v{ 1, 5, 8, 9, 6, 7, 3, 4, 2, 0};>> sort(v.begin(), v.end(), greater<>int>>());>> cout <<>'Sorted
'>;> >for> (>auto> x : v)> >cout << x <<>' '>;> > >return> 0;> }> |
>
>Išvestis
Sorted 9 8 7 6 5 4 3 2 1 0>
Kaip rūšiuoti a konkrecia tvarka?
Taip pat galime parašyti savo lyginamąją funkciją ir perduoti ją kaip trečiąjį parametrą.
Palyginimo funkcija patikrina, ar pateiktas teiginys yra teisingas, ar klaidingas, ir grąžina pagrindinę reikšmę, kuri perduodama rūšiavimo funkcijai.
Pavyzdžiui, tarkime, kad intervalas i1 = { 6 , 8 } ir intervalas i2 = { 1, 9 }. Kai tai perduodama palyginimo funkcijai, ji lygina i1.pradėti ir i2.pradėti . Nuo i1.start (=6)
CPP
java prioritetų eilė
// A C++ program to sort vector using> // our own comparator> #include> using> namespace> std;> > // An interval has start time and end time> struct> Interval {> >int> start, end;> };> > // Compares two intervals according to starting times.> bool> compareInterval(Interval i1, Interval i2)> {> >return> (i1.start } int main() { vector v { { 6, 8 }, { 1, 9 }, { 2, 4 }, { 4, 7 } }; // sort the intervals in increasing order of // start time sort(v.begin(), v.end(), compareInterval); cout << 'Intervals sorted by start time :
'; for (auto x : v) cout << '[' << x.start << ', ' << x.end << '] '; return 0; }> |
>
>Išvestis
Intervals sorted by start time : [1, 9] [2, 4] [4, 7] [6, 8]>
Kaip surūšiuoti masyvą mažėjančia tvarka pagal tam tikrą parametrą naudojant lyginamąją funkciją?
Palyginamoji funkcija gali būti perduodama taip, kad masyvo elementai būtų surūšiuoti mažėjančia tvarka.
darbas kompiuteriu
C++
// A C++ program to sort vector using> // our own comparator> #include> using> namespace> std;> > // An interval has start time and end time> struct> Interval {> >int> start, end;> };> > // Compares two intervals according to ending times in descending order.> bool> compareInterval(Interval i1, Interval i2)> {> >return> (i1.end>i2.pabaiga);>> int> main()> {> >vector v { { 6, 8 }, { 1, 9 }, { 2, 4 }, { 4, 7 } };> > >// sort the intervals in decreasing order of> >// end time> >sort(v.begin(), v.end(), compareInterval);> > >cout <<>'Intervals sorted by ending time in descending order :
'>;> >for> (>auto> x : v)> >cout <<>'['> << x.start <<>', '> << x.end <<>'] '>;> > >return> 0;> }> |
>
>Išvestis
Intervals sorted by ending time in descending order : [1, 9] [6, 8] [4, 7] [2, 4]>
Susiję straipsniai :
Porų vektoriaus rūšiavimas | 1 rinkinys
Porų vektoriaus rūšiavimas | 2 rinkinys