logo

Een vector sorteren in C++

Vereisten: std::sorteren in C++ , vectoren in C++ , initialiseer een vector in C++ .

CPP



iteratie van de kaart in Java






// 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;> }>



>

>

Uitvoer

Sorted 0 1 2 3 4 5 6 7 8 9>

Hoe aflopend sorteren?
sort() heeft een derde parameter nodig die wordt gebruikt om de volgorde op te geven waarin elementen moeten worden gesorteerd. We kunnen de functie groter() doorgeven om in aflopende volgorde te sorteren. Deze functie vergelijkt op een manier die grotere elementen vooropstelt.

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;> }>

>

>

Uitvoer

Sorted 9 8 7 6 5 4 3 2 1 0>

Hoe sorteer je in een bepaalde volgorde?
We kunnen ook onze eigen comparatorfunctie schrijven en deze als derde parameter doorgeven.

De comparatorfunctie controleert of de geretourneerde instructie waar of onwaar is en retourneert een boolwaarde die wordt doorgegeven aan de sorteerfunctie.

Laten we bijvoorbeeld zeggen Interval i1 = { 6 , 8 } en Interval i2 = { 1, 9 }. Wanneer dit wordt doorgegeven aan de comparatorfunctie, wordt er vergeleken i1.start En i2.start . Sinds i1.start (=6) vals. Dit betekent dat Interval i1 niet vóór Interval i2 mag worden geplaatst. Hieronder vindt u de code voor deze functie.

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; }>

>

uitzonderingsafhandeling in Java

>

Uitvoer

Intervals sorted by start time : [1, 9] [2, 4] [4, 7] [6, 8]>

Hoe kan ik de array in aflopende volgorde sorteren op basis van een parameter met behulp van een comparatorfunctie?

Een comparatorfunctie kan op een zodanige manier worden doorgegeven dat de elementen in de array in aflopende volgorde worden gesorteerd.

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.end);> }> > 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;> }>

>

>

Uitvoer

Intervals sorted by ending time in descending order : [1, 9] [6, 8] [4, 7] [2, 4]>

Gerelateerde artikelen :
Een vector van paren sorteren | Set 1
Een vector van paren sorteren | Stel 2 in