Pointers 为了Phobos';二进制堆

Pointers 为了Phobos';二进制堆,pointers,struct,d,phobos,binary-heap,Pointers,Struct,D,Phobos,Binary Heap,我已经编写了一个名为Node的结构,并希望能够将指向该结构的指针用作Phobos二进制堆中的条目。但是,我不确定如何为指向结构的指针实现opEquals和opCmp。我在文档中找不到任何帮助我的东西。有人能给我指出正确的方向吗?如果你有这些节点的数组*你可以这样做: Node*[] arr = ....; auto heap = heapify!(yourCustomCompareFuncGoesHere)(arr); 如果出于任何原因无法使用heapify,可以通过以下方式创建BinaryH

我已经编写了一个名为
Node
的结构,并希望能够将指向该结构的指针用作Phobos
二进制堆中的条目。但是,我不确定如何为指向结构的指针实现
opEquals
opCmp
。我在文档中找不到任何帮助我的东西。有人能给我指出正确的方向吗?

如果你有这些节点的数组*你可以这样做:

Node*[] arr = ....;
auto heap = heapify!(yourCustomCompareFuncGoesHere)(arr);
如果出于任何原因无法使用heapify,可以通过以下方式创建BinaryHeap:

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

YourCustomCompareFungGoesher将作为别名模板参数传递给堆,并用于排序的“is less比较”。与phobos文档中BinaryHeap的结构签名进行比较。

对于此自定义比较函数,
BinaryHeap
期望使用哪种函数签名?我试过用这种方法,用。。。奇怪的结果。好吧,它似乎需要一个返回布尔值的函数。