2

boost ライブラリを使用してプライオリティ キューの比較関数を変更するにはどうすればよいですか? 私はこのような構造体を持っています:

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

それを使用して要素を比較したいと思います。

ありがとう!

4

1 に答える 1

5

std::priority_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;
于 2012-12-09T23:08:31.797 に答える