Ruby 使用 PriorityQueue 时未定义方法

Ruby undefined method while using PriorityQueue

我试图在 ruby 上使用来自 https://github.com/ldonnet/priority_queue 的 priorityQueue,在使用 gem install priority_queue 安装后,出现错误:

./example.rb:5:in `<main>': undefined method `push' for #<PriorityQueue:0x000000015ca200 @queues={}> (NoMethodError)

尝试 运行 README.md 文件的示例时:

#!/usr/bin/ruby
require 'priority_queue'

q = PriorityQueue.new
q.push "node1", 0 
q.push "node2", 1

q.min #=> "node1"

q.decrease_priority("node2", -1)

q.pop_min #=> "node2"
q.min     #=> "node1"

ruby 版本:ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

谢谢

您链接的 gem 是 PriorityQueue gem, not the priority_queue gem 的(分支)。你需要 gem install PriorityQueue.

我知道您链接到 的存储库在自述文件中说 gem install priority_queue,但是,这似乎不正确。 priority_queue gem 来自 a different repository.