4

と呼ばれる構造体を作成しましたが、Nodeその構造体へのポインタを Phobos のエントリとして使用できるようにしたいと考えていますBinaryHeap。ただし、構造体へのポインターに対して (または実際には一般的に) どのように実装されてopEqualsいるかはわかりません。opCmp私は、ドキュメントで私を助けるものを見つけることができませんでした。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

3

これらの Node* の配列がある場合、次のようなことができます。

Node*[] arr = ....;
auto heap = heapify!(yourCustomCompareFuncGoesHere)(arr);

何らかの理由で heapify を使用できない場合は、次の方法で BinaryHeap を作成できます。

BinaryHeap!(Node*[], yourCustomCompareFuncGoesHere) heap;

yourCustomCompareFuncGoesHere は、エイリアス テンプレート パラメーターとしてヒープに渡され、並べ替えの「少ない比較」に使用されます。phobos docs の BinaryHeap の構造体シグネチャと比較してください。

于 2014-06-12T09:27:07.583 に答える