提升优先级队列比较功能

时间:2012-12-09 22:26:35

标签: c++ boost comparison

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

struct decreasingOrderMyType
{
    bool operator() (const MyType & lhs, const MyType & rhs) const
    {
        return lhs.value > rhs.value;
    }
};

我希望用它来比较我的元素。

谢谢!

1 个答案:

答案 0 :(得分:4)

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

DistanceTuplestd::pair,而SmallestOnTop是用于比较std::pair

的仿函数

更新:我错了,他们不一样。 boost版本使用命名参数。哪个工作是这样的:

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