4
我写了一个名为Node
的结构,并希望能够使用指向该结构的指针作为Phobos BinaryHeap
中的条目。但是,我不确定opEquals
和opCmp
是如何实现指向结构的指针(或者实际上,通常)。我无法在文档中找到任何帮助我的东西。任何人都可以将我指向正确的方向吗?将指针与用于Phobos二进制堆的结构进行比较
我写了一个名为Node
的结构,并希望能够使用指向该结构的指针作为Phobos BinaryHeap
中的条目。但是,我不确定opEquals
和opCmp
是如何实现指向结构的指针(或者实际上,通常)。我无法在文档中找到任何帮助我的东西。任何人都可以将我指向正确的方向吗?将指针与用于Phobos二进制堆的结构进行比较
如果您有这些节点的数组*你可以做这样的事情:
BinaryHeap!(Node*[], yourCustomCompareFuncGoesHere) heap;
:
Node*[] arr = ....;
auto heap = heapify!(yourCustomCompareFuncGoesHere)(arr);
如果您不能使用heapify无论出于何种原因,你可以通过创建一个二叉堆
yourCustomCompareFuncGoesHere将作为别名模板参数传递给堆,并用于排序的“少比较”。与phobos文档中的BinaryHeap的结构签名进行比较。
对于这个自定义比较函数,“BinaryHeap”期望什么样的函数签名?我尝试过使用这种方法,结果很奇怪。 –
好吧,它好像想要一个返回布尔值的函数。 –