logo

Razvrščanje vektorja v C++

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) napačno To pomeni, da Interval i1 ne sme biti postavljen pred Interval i2. Spodaj je koda za to funkcijo.

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