Boost优先队列比较功能

Ark*_*one 2 c++ comparison boost

如何使用Boost库更改优先级队列上的比较功能?我有一个这样的结构:

struct decreasingOrderMyType
{
    bool operator() (const MyType & lhs, const MyType & rhs) const
    {
        return lhs.value > rhs.value;
    }
};
Run Code Online (Sandbox Code Playgroud)

我想用它来比较我的元素。

谢谢!

gvd*_*gvd 5

对于std :: priority_queue,我将其指定为: std::priority_queue<DistanceTuple, std::vector<DistanceTuple>, SmallestOnTop > pq;

DistanceTuple是一个std::pair并且SmallestOnTop是一个函子来比较std::pair

更新:我错了,它们并不相同。Boost版本使用命名参数。像这样的工作:

boost::heap::priority_queue<MyType,
                            boost::heap::compare<decreasingOrderMyType> > pq;
Run Code Online (Sandbox Code Playgroud)