logo

Sortowanie wektorów w C++

Warunki wstępne: std::sort w C++ , wektor w C++ , zainicjuj wektor w 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;> }>



>

lista Javy
>

Wyjście

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

Jak sortować w kolejności malejącej?
sort() przyjmuje trzeci parametr używany do określenia kolejności sortowania elementów. Możemy przekazać funkcję Great() w celu sortowania w porządku malejącym. Ta funkcja porównuje w sposób, który stawia większe elementy na pierwszym miejscu.

CPP




zmień programowanie w Javie

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

>

>

Wyjście

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

Jak sortować w konkretna kolejność?
Możemy także napisać własną funkcję komparatora i przekazać ją jako trzeci parametr.

Funkcja komparatora sprawdza, czy zwrócona instrukcja jest prawdziwa czy fałszywa i zwraca wartość bool, która jest przekazywana do funkcji sortującej.

Załóżmy na przykład, że Przedział i1 = { 6 , 8 } i Przedział i2 = { 1, 9 }. Kiedy zostanie to przekazane do funkcji komparatora, następuje porównanie i1.start I i2.start . Od i1.start (=6) FAŁSZ . Oznacza to, że Przedział i1 nie powinien być umieszczony przed Przedziałem i2. Poniżej znajduje się kod tej funkcji.

CPP


teoria automatów



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

>

>

string.compare C#
Wyjście

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

Jak posortować tablicę w kolejności malejącej na podstawie jakiegoś parametru za pomocą funkcji komparatora?

Funkcję komparatora można przekazać w taki sposób, aby elementy tablicy zostały posortowane w kolejności malejącej.

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

>

klasa obiektu w Javie
>

Wyjście

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

Powiązane artykuły :
Sortowanie wektora par | Zestaw 1
Sortowanie wektora par | Zestaw 2