Predpogoji: std::sort v C++ , vektor v C++ , inicializirati 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;> }> |
>
format niza java
>Izhod
Sorted 0 1 2 3 4 5 6 7 8 9>
Kako razvrstiti v padajočem vrstnem redu?
sort() sprejme tretji parameter, ki se uporablja za določanje vrstnega reda, v katerem naj bodo elementi razvrščeni. Za razvrščanje v padajočem vrstnem redu lahko posredujemo funkcijo larger(). Ta funkcija izvaja primerjavo na način, ki pred seboj postavi večje elemente.
CPP
rohit shetty igralec
// 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;> }> |
>
>Izhod
Sorted 9 8 7 6 5 4 3 2 1 0>
Kako razvrstiti v a posebno naročilo?
Lahko tudi napišemo lastno primerjalno funkcijo in jo posredujemo kot tretji parameter.
Funkcija primerjalnika preveri, ali je vrnjena izjava resnična ali napačna, in vrne bool vrednost, ki se posreduje funkciji za razvrščanje.
Na primer, recimo Interval i1 = { 6 , 8 } in Interval i2 = { 1, 9 }. Ko je to posredovano funkciji primerjalnika, ta primerja i1.start in i2.start . Ker je i1.start (=6)
CPP
// 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; }> |
>
>Izhod
uporabniško ime
Intervals sorted by start time : [1, 9] [2, 4] [4, 7] [6, 8]>
Kako razvrstiti matriko v padajočem vrstnem redu na podlagi nekega parametra z uporabo primerjalne funkcije?
Primerjalno funkcijo je mogoče posredovati na tak način, da se elementi v matriki razvrstijo v padajočem vrstnem redu.
C++
dolgo do int java
// 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.konec);> }> > 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;> }> |
>
>Izhod
Intervals sorted by ending time in descending order : [1, 9] [6, 8] [4, 7] [2, 4]>
Povezani članki :
Razvrščanje vektorja parov | Komplet 1
Razvrščanje vektorja parov | Komplet 2