Деяким алгоритмам в якості параметрів потрібні певні функціональні об’єкти. Функціональний об’єкт – це об’єкт шаблонного класу, в якому наявний єдиний метод: перезавантажувана операція {}. Його використання досить просте.
Нехай нам треба відсортувати масив чисел за зростанням чи спаданням. У прикладі 15.6 показано, як це робиться.
//сортування масиву double за спаданням
//використовується функціональний об'єкт greater<>()
#include<iostream>
#include<conio>
#include<algorithm>
#include<functional>
using namespace std;
double fdata[]={19.2,87.4,33.6,55.0,11.5,42.2};
int main()
{//сортування масиву double
sort(fdata,fdata+6,greater<double>());
for(int j=0;j<6;j++) //вивести відсортований масив
cout<<fdata[j]<<' ';
cout<<endl;
getch();
return 0;
}
Програма 15.6
Алгоритм sort() звичайно сортує за зростанням, але використання функціонального об’єкту greater<>() в якості третього аргументу sort змінює порядок сортування

Крім порівнянн, є функціональні об’єкти для арифметичних і логічних операцій.