提升优先级队列比较功能

Boost priority queue comparison function

本文关键字:比较 功能 队列 优先级      更新时间:2023-10-16

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

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::pairSmallestOnTop 是一个函子来比较std::pair

更新:我错了,它们并不相同。提升版本使用命名参数。其工作方式如下:

boost::heap::priority_queue<MyType,
                            boost::heap::compare<decreasingOrderMyType> > pq;