Что мне следует использовать: функции или функторы без состояния?

Эти две части кода делают то же самое. И, как видите, он будет использоваться в функции сортировки. Что лучше? Я обычно пишу последнее. Но я видел, как некоторые кодеры делали это так же, как и предыдущий.

struct val_lessthan : binary_function<pair<string,int>, pair<string, int>, bool>
{
    bool operator() (const pair<string,int>& x, const pair<string,int>& y) const
    {
        return x.second < y.second;
    }
} val_lt;

и

bool val_lt(const pair<string,int>& x, const pair<string,int>& y) 
{
    return x.second < y.second;
}

Будут использовать это так:

std::sort(wordvector.begin(), wordvector.end(), val_lt);
8
задан fredoverflow 2 April 2011 в 08:22
поделиться