为了Phobos'而比较指向结构的指针。二进制堆

时间:2014-06-12 00:10:31

标签: pointers struct d phobos binary-heap

我已经编写了一个名为Node的结构体,并且希望能够将指向该结构的指针用作Phobos BinaryHeap中的条目。但是,我不确定如何将opEqualsopCmp用于指向结构的指针(或实际上,通常)。我在文档中找不到任何帮助我的内容。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

如果您有这些Node *的数组,您可以这样做:

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

如果由于某种原因无法使用heapify,可以通过以下方式创建BinaryHeap:

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

yourCustomCompareFuncGoesHere将作为别名模板参数传递给堆,并用于排序的“较少比较”。与phobos docs中的BinaryHeap的struct签名进行比较。