如何在julia中堆积类型数组

时间:2017-06-06 09:45:48

标签: arrays heap julia

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)

1 个答案:

答案 0 :(得分:2)

解决问题的一种方法是定义Julia抱怨的方法,如下:

Base.isless(a::Event,b::Event) = isless(a.time,b.time)

现在,Collections.heapify!(events)应该有效。