这两段代码执行的是同样的功能,并且它们将在排序函数中被使用,正如你所看到的。 哪个更好?我通常编写后者,但我看到一些程序员像前者那样编写。
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);