C++/Algorytmy w STL/sort()
Z Wikibooks, biblioteki wolnych podręczników.
< C++ | Algorytmy w STL
[edytuj] sort()
Jak używać:
#include<algorithm> ... sort( iterator start, iterator koniec ); //albo sort( iterator start, iterator koniec, cmp ); //cmp - funkcja porównująca ...
W pierwszym przypadku algorytm sort() ustawia elementy w zakresie [start,koniec) w porządku niemalejącym. Gdy wywołujemy sortowanie z trzema parametrami to sortowanie odbywa się względem funkcji porównującej, którą definiujemy.
[edytuj] Przykładowe kody źródłowe
vector<int> v;
v.push_back( 23 );
v.push_back( -1 );
v.push_back( 9999 );
v.push_back( 0 );
v.push_back( 4 );
cout << "Przed sortowaniem: ";
for( int i = 0; i < v.size(); ++i ) {
cout << v[i] << " ";
}
cout << endl;
sort( v.begin(), v.end() );
cout << "Po sortowaniu: ";
for( int i = 0; i < v.size(); ++i ) {
cout << v[i] << " ";
}
cout << endl;
Efektem działania tego programu będzie:
Przed sortowaniem: 23 -1 9999 0 4 Po sortowaniu: -1 0 4 23 9999
Inny przykład, tym razem z funkcją definiowaną przez programistę:
bool cmp( int a, int b ) {
return a > b;
}
...
vector<int> v;
for( int i = 0; i < 10; ++i ) {
v.push_back(i);
}
cout << "Przed: ";
for( int i = 0; i < 10; ++i ) {
cout << v[i] << " ";
}
cout << endl;
sort( v.begin(), v.end(), cmp );
cout << "Po: ";
for( int i = 0; i < 10; ++i ) {
cout << v[i] << " ";
}
cout << endl;
Wyniki działania takiego programu będą następujące:
Przed: 0 1 2 3 4 5 6 7 8 9 Po: 9 8 7 6 5 4 3 2 1 0