【发布时间】:2022-02-02 11:43:20
【问题描述】:
我一直在尝试在 Go 中使用 Heap 包,但我不确定如何初始化它。
package main
import "container/heap"
type PriorityMessage struct {
Priority int
Message string
}
func priorityQueue() {
//WOULD THIS not initialize the heap?
h := heap.Init(h PriorityMessage)
}
我一直试图在网上找到其他人如何初始化他们的堆的示例,并且他们似乎每次都创建自己的 Go 堆包版本。从 heap 包调用 heap.Init(h Interface) 函数不起作用吗?
【问题讨论】:
-
这就是我所困惑的,就像在这个例子中他们如何创建 push、pop、len .etc 函数一样,每次你想使用堆时,你必须将这些函数编写为好吧,或者你可以从堆包中调用它吗?
-
参见Interface 文档。该应用程序提供了用于访问底层数据的简单操作。 heap 包使用这些操作来实现堆语义。
-
@paartrk 是的,当然。
-
您可以在这篇文章中看到
container/heap包的用法以及一些示例用法:tugberkugurlu.com/archive/…
标签: go package heap priority-queue