比较对象的优先级队列C ++

时间:2016-10-01 22:22:17

标签: c++ object compare priority-queue

我需要在我的优先级队列中使用比较函数来比较对象。对象需要按对象的比例排序。由于某种原因,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()

我也有程序中包含的队列和矢量库。

1 个答案:

答案 0 :(得分:1)

成员函数Item::getRatio()需要标记为const,否则编译器会认为此方法可以更改Item实例,从而阻止您在传递{{1}时使用它实例为Item(正如您在const_reference operator()中所做的那样)。

因此,只需将RatioCompare的定义更改为:

Item::getRatio