Эти две части кода делают то же самое. И, как видите, он будет использоваться в функции сортировки. Что лучше? Я обычно пишу последнее. Но я видел, как некоторые кодеры делали это так же, как и предыдущий.
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);