在julia
我创建了给定类型:
type Event
clientNumber
time
end
然后我创建了一个数组,其元素的类型为Event
:
e1 = Event(1, 12)
e2 = Event(2, 13)
e3 = Event(3, 2)
events = [e1, e2, e3]
我的问题是:如何按类型time
的字段Event
堆叠此数组?如果它只是Int's
的简单数组,它看起来就像这样:
arr = [4, 3, 21, 54, 1]
Collections.heapify!(arr)
但我不知道如何在堆中比较这些事件。
代码:
Collections.heapify!(events)
返回错误:
MethodError: no method matching isless(::Event, ::Event)
答案 0 :(得分:2)
解决问题的一种方法是定义Julia抱怨的方法,如下:
Base.isless(a::Event,b::Event) = isless(a.time,b.time)
现在,Collections.heapify!(events)
应该有效。