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 文档中 BinaryHeap 的结构签名进行比较。

于 2014-06-12T09:27:07.583 回答