logo

Sortieren eines Vektors in C++

Voraussetzungen: std::sort in C++ , Vektor in C++ , Initialisieren Sie einen Vektor in 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;> }>



>

>

Nick Pulos schwarzer Blitz
Ausgabe

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

Wie sortiere ich in absteigender Reihenfolge?
sort() benötigt einen dritten Parameter, der verwendet wird, um die Reihenfolge anzugeben, in der Elemente sortiert werden sollen. Wir können die Funktion „Greater()“ übergeben, um in absteigender Reihenfolge zu sortieren. Diese Funktion führt einen Vergleich auf eine Weise durch, bei der größere Elemente vorangestellt werden.

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

>

>

Ausgabe

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

So sortieren Sie ein bestimmte Reihenfolge?
Wir können auch unsere eigene Komparatorfunktion schreiben und sie als dritten Parameter übergeben.

Die Komparatorfunktion prüft, ob die zurückgegebene Anweisung wahr oder falsch ist und gibt einen Bool-Wert zurück, der an die Sortierfunktion übergeben wird.

Nehmen wir zum Beispiel an, Intervall i1 = { 6 , 8 } und Intervall i2 = { 1, 9 }. Wenn dies an die Komparatorfunktion übergeben wird, führt diese einen Vergleich durch i1.start Und i2.start . Da i1.start (=6) FALSCH . Das bedeutet, dass Intervall i1 nicht vor Intervall i2 platziert werden sollte. Unten finden Sie den Code für diese Funktion.

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

>

>

Ausgabe

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

Wie sortiere ich das Array mithilfe einer Komparatorfunktion in absteigender Reihenfolge basierend auf einem Parameter?

Eine Komparatorfunktion kann so übergeben werden, dass die Elemente im Array in absteigender Reihenfolge sortiert werden.

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

>

Was ist Orakel?

>

Ausgabe

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

In Verbindung stehende Artikel :
Sortieren eines Vektors von Paaren | Set 1
Sortieren eines Vektors von Paaren | Satz 2