我需要在我的优先级队列中使用比较函数来比较对象。对象需要按对象的比例排序。由于某种原因,RatioCompare函数将无法工作/编译。
编译器出现以下错误:
在成员函数
bool RatioCompare::operator()(const Item&, const Item&) const
中:joulethief.cpp:58
:错误:将'const Item'作为{this 1}的'this'参数传递丢弃限定符joulethief.cpp:59:错误:传递'const项'double Item::getRatio()
的{{1}}参数丢弃限定符
你们可以看看吗?
this
这是我声明它的代码,然后测试它是否在main ...
中工作double Item::getRatio()
我也有程序中包含的队列和矢量库。
答案 0 :(得分:1)
成员函数Item::getRatio()
需要标记为const
,否则编译器会认为此方法可以更改Item
实例,从而阻止您在传递{{1}时使用它实例为Item
(正如您在const_reference
operator()
中所做的那样)。
因此,只需将RatioCompare
的定义更改为:
Item::getRatio