任何人都可以为简单快速的 FIF/队列推荐 Go 容器,Go 有 3 个不同的容器:heap
、list
和 vector
。哪个更适合实现队列?
最佳答案
事实上,如果你想要的是一个基本且易于使用的 fifo 队列,slice 提供了你所需要的一切。
queue := make([]int, 0)
// Push to the queue
queue = append(queue, 1)
// Top (just get next element, don't remove it)
x = queue[0]
// Discard top element
queue = queue[1:]
// Is empty ?
if len(queue) == 0 {
fmt.Println("Queue is empty !")
}
当然,我们假设我们可以信任附加和 slice 的内部实现,从而避免无用的调整大小和重新分配。对于基本用法,这完全足够了。
关于go - 有队列实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2818852/