【发布时间】:2011-04-02 07:41:31
【问题描述】:
这两段代码做同样的事情。如您所见,它将用于排序功能。 哪个更好?我通常写后一个。但是我看到一些程序员像以前那样做。
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);
【问题讨论】:
-
最简单的工作就是最好的。
-
您没有提到应根据哪些标准来判断备选方案。有几种情况,其中任何一种都比另一种“更好”……但总的来说,是的,选择更简单的一种。如果考虑任一替代方案,请不要忘记 c++1x lambdas。