cout « "Before sorting:\n";
copy(a, a+N, ostream_iterator<int>(cout, " "));
cout « endl;
sort (a, a+N, compared);
cout « "After sorting in descending order:\n";
copyfa, a+N, ostream_iterator<int>(cout, " "));
cout << endl;
return 0; }
В действительности нет необходимости определять класс compare, поскольку в STL уже есть подобное определение в более общей форме шаблона. Следовательно, мы можем опустить класс compare и при вызове алгоритма sort заменить compareQ на greater<int>Q. Это дает нам следующую, окончательную версию:
// dsort3 .срр: Сортировка в нисходящем порядке
// с использованием шаблона 'greater'.
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
int main()
{ const int N = 8;
int a[N] =
{1234, 5432, 8943, 3346, 9831, 7842, 8863, 9820};
cout << "Before sorting:\n";
copyfa, a+N, ostream_iterator<int>(cout, " "));
cout « endl;
sort(a, a+N, greater<int>());
cout << "After sorting in descending order:\n";
copyfa, a+N, ostream_iterator<int>(cout, " ")) ;
cout « endl;
return 0; }
Обсудим функциональные объекты более подробно в главе 6.
<< назад вперед >>