在Haxe中是否有array.push()O(1)?

时间:2013-03-25 18:45:16

标签: data-structures arraylist haxe

许多语言都有标准类型,可以在需要时自行调整大小,例如C ++的vector<T>或C#的ArrayList<T>。然而,在Haxe,我没有看到这样的数据结构。

Haxe中的Array是否以这种方式工作?它可以添加/删除(分期)O(1)中的最后一个元素吗?

1 个答案:

答案 0 :(得分:2)

从技术上讲,这当然取决于Array的特定于平台的实现,但可以安全地假设push已经摊销了O(1),因为这很容易实现(neko实现)显示相当不错)。

在所有带有动态大小的阵列并支持稀疏性的平台上,Haxe使用它们来实现(AFAIK即flash,js和php),但我想如果那些表现不佳的指标,它们将被重新实现。 / p>

如果随机访问不重要,我会注意到还有List。但在某些平台上,它永远不会比Array快,只会更小。