繁体   English   中英

c ++ std ::使用函数返回值对std :: vector进行排序

[英]c++ std::sort a std::vector using a function return value

我有一个具有以下功能的Policy类:

double Policy::meanResponse();

假设我有一个我希望排序的Policy对象( myPolicies )向量,我希望根据Policy::meanResponse()的值进行排序。 我尝试过以下方法:

bool compare_by_function(const Policy& p1, const Policy& p2)
{
    return ( p1.meanResponse() < p2.meanResponse() );
}

sort(myPolicies.begin(), myPolicies.end(), compare_by_function);

但我得到错误:

“错误:将'const Policy'作为'double Policy :: meanResponse()'的'this'参数传递给丢弃的资格者”

有人可以解释在这种情况下如何正确排序?

您是否尝试将meanResponse更改为const?

double Policy::meanResponse()const;

由于您使用const引用将Policy对象传递给compare函数,因此无法对它们调用非const方法。

http://www.parashift.com/c++-faq-lite/const-member-fns.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM