我在看http://www.cplusplus.com/reference/algorithm/sort/並希望實現類似的功能:我定義了一個函數clauseComparator
,它與所提供的鏈接中的示例中給出的myfunc
相似。比較器與排序一起使用
bool QueryEvaluatorPrivate::clauseComparator(QueryClause cl1, QueryClause cl2) {
int priority1 = clausePriority(cl1),
priority2 = clausePriority(cl2);
return priority1 < priority2;
}
,我用它像:
sort(clauses.begin(), clauses.end(), clauseComparator);
但是VS抱怨:
Error 4 error C3867: 'QueryEvaluatorPrivate::clauseComparator': function call missing argument list; use '&QueryEvaluatorPrivate::clauseComparator' to create a pointer to member h:\dropbox\sch\cs3202\code\source\query\query evaluator\queryevaluator.cpp 138
Error 5 error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 3 provided h:\dropbox\sch\cs3202\code\source\query\query evaluator\queryevaluator.cpp 138
首先什麼是錯(ARG失蹤名單)?我試圖按照錯誤給加&
建議,並結束了與
Error 4 error C2276: '&' : illegal operation on bound member function expression h:\dropbox\sch\cs3202\code\source\query\query evaluator\queryevaluator.cpp 138
Error 5 error C2780: 'void std::sort(_RanIt,_RanIt)' : expects 2 arguments - 3 provided h:\dropbox\sch\cs3202\code\source\query\query evaluator\queryevaluator.cpp 138
請告訴我錯在這裏?在我的理解中,它應該傳遞一個函數指針,我知道它也應該被sort
接受?
我不認爲你可以使用類的成員函數作爲比較器。 – sgarizvi 2013-03-13 12:34:36