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.


<< назад вперед >>