5

プロジェクトでフィボナッチ ヒープを使用する必要があり、ブースト ライブラリから使用しようとしています。しかし、任意のデータ型に対してユーザー定義の比較関数を設定する方法がわかりません。次のように定義された構造体ノードの最小ヒープを構築する必要があります。

struct node
{
    int id;
    int weight;
    struct node* next;
                 /* dist is a global array of integers */
    bool operator > (struct node b)                                 //Boost generates a Max-heap. What I need is a min-heap.
            {return dist[id]   < dist[b.id] ? 1:0  ;}               //That's why "<" is used for "operator >".
    bool operator < (struct node b)
            {return dist[id]   > dist[b.id] ? 1:0 ;}
    bool operator >=(struct node b)
            {return dist[id]   <= dist[b.id] ? 1:0 ;}
    bool operator <=(struct node b)
            {return dist[id]   >= dist[b.id] ? 1:0 ;}

    node()
    {
            id=0;
            weight=0;
            next=NULL;
    }

};

ドキュメントを調べたところ、比較クラスがありました。しかし、それには要素が含まれていませんでした。ユーザー定義の比較関数の設定方法を教えてください。前もって感謝します。

4

1 に答える 1