Julia中调用popfirst!操作PriorityQueue时抛出MethodError错误
解决PriorityQueue调用popfirst!报错的问题
PriorityQueue没有实现popfirst!方法,这就是你遇到MethodError的直接原因。
直接使用pop!方法替代即可:在Forward排序规则的优先级队列中,pop!会自动弹出优先级最高(即值最小)的元素,完全符合你想要的popfirst!的效果。
修改后的可运行代码:
using DataStructures x = PriorityQueue(Base.Order.Forward, "a" => 2, "b" => 3, "c" => 1) pop!(x) # 返回"c",队列剩余"a"和"b"
补充说明:
- 若需要弹出优先级最低的元素,可以改用
Base.Order.Reverse排序规则初始化队列后再调用pop!; - 也可以使用
pop!(x, key)指定弹出某个键值对,但这种操作并非优先级队列的高效用法。
内容的提问来源于stack exchange,提问作者Vinod
相关产品推荐
相关产品推荐

