プロジェクトでフィボナッチ ヒープを使用する必要があり、ブースト ライブラリから使用しようとしています。しかし、任意のデータ型に対してユーザー定義の比較関数を設定する方法がわかりません。次のように定義された構造体ノードの最小ヒープを構築する必要があります。
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;
}
};
ドキュメントを調べたところ、比較クラスがありました。しかし、それには要素が含まれていませんでした。ユーザー定義の比較関数の設定方法を教えてください。前もって感謝します。