许多语言都有标准类型,可以在需要时自行调整大小,例如C ++的vector<T>
或C#的ArrayList<T>
。然而,在Haxe,我没有看到这样的数据结构。
Haxe中的Array
是否以这种方式工作?它可以添加/删除(分期)O(1)中的最后一个元素吗?
答案 0 :(得分:2)
从技术上讲,这当然取决于Array
的特定于平台的实现,但可以安全地假设push
已经摊销了O(1),因为这很容易实现(neko实现)显示相当不错)。
在所有带有动态大小的阵列并支持稀疏性的平台上,Haxe使用它们来实现(AFAIK即flash,js和php),但我想如果那些表现不佳的指标,它们将被重新实现。 / p>
如果随机访问不重要,我会注意到还有List
。但在某些平台上,它永远不会比Array
快,只会更小。