Predpoklady: std::triediť v C++ , vektor v C++ , inicializovať vektor v C++ .
CPP
// 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;> }> |
>
java nahradiť všetok reťazec
>Výkon
Sorted 0 1 2 3 4 5 6 7 8 9>
Ako triediť v zostupnom poradí?
sort() preberá tretí parameter, ktorý sa používa na určenie poradia, v ktorom sa majú prvky triediť. Môžeme odovzdať funkciu more () na zoradenie v zostupnom poradí. Táto funkcia robí porovnanie spôsobom, ktorý dáva väčšie prvky pred.
CPP
vek mia Khalifa
// 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;> }> |
>
>Výkon
Sorted 9 8 7 6 5 4 3 2 1 0>
Ako triediť v a konkrétna objednávka?
Môžeme si tiež napísať vlastnú funkciu porovnávača a odovzdať ju ako tretí parameter.
Funkcia komparátora skontroluje, či je vrátený príkaz pravdivý alebo nepravdivý, a vráti boolovu hodnotu, ktorá sa odovzdá triediacej funkcii.
Povedzme napríklad Interval i1 = { 6 , 8 } a Interval i2 = { 1, 9 }. Keď sa to odovzdá funkcii komparátora, porovná sa i1.štart a i2.štart . Od i1.start (=6)
CPP
webové stránky ako coomeet
// 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; }> |
>
>
int to char javaVýkon
Intervals sorted by start time : [1, 9] [2, 4] [4, 7] [6, 8]>
Ako zoradiť pole v zostupnom poradí na základe nejakého parametra pomocou funkcie komparátora?
Funkciu komparátora je možné odovzdať tak, aby sa prvky v poli zoradili v zostupnom poradí.
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.koniec);> }> > 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;> }> |
>
reťazenie reťazcov
>Výkon
Intervals sorted by ending time in descending order : [1, 9] [6, 8] [4, 7] [2, 4]>
Súvisiace články:
Triedenie vektora párov | Set 1
Triedenie vektora párov | Súprava 2