如何使用提升库更改优先级队列上的比较功能?我有一个这样的结构:
struct decreasingOrderMyType
{
bool operator() (const MyType & lhs, const MyType & rhs) const
{
return lhs.value > rhs.value;
}
};
我想用它来比较我的元素。
谢谢!
对于 std::p riority_queue,我将其指定为: std::priority_queue<DistanceTuple, std::vector<DistanceTuple>, SmallestOnTop > pq;
DistanceTuple
是一个std::pair
,SmallestOnTop
是一个函子来比较std::pair
更新:我错了,它们并不相同。提升版本使用命名参数。其工作方式如下:
boost::heap::priority_queue<MyType,
boost::heap::compare<decreasingOrderMyType> > pq;