我有一个具有以下功能的 Policy
类:
double Policy::meanResponse();
假设我有一个要排序的 Policy
对象 vector (myPolicies
),并且我希望根据 Policy::的值进行排序:平均响应()
。我尝试了以下方法:
bool compare_by_function(const Policy& p1, const Policy& p2)
{
return ( p1.meanResponse() < p2.meanResponse() );
}
sort(myPolicies.begin(), myPolicies.end(), compare_by_function);
但是我得到了错误:
"error: passing 'const Policy' as 'this' argument of 'double Policy::meanResponse()' discards qualifers"
谁能解释一下在这种情况下如何正确排序?
最佳答案
您是否尝试将 meanResponse 更改为 const?
double Policy::meanResponse()const;
由于您将 Policy 对象传递给带有 const 引用的比较函数,因此您不能对它们调用非常量方法。
关于c++ std::sort a std::vector 使用函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12083770/