多くの言語には、C ++vector<T>
やC#のように、必要に応じてサイズを変更できる標準タイプがありますArrayList<T>
。しかし、Haxeではそのようなデータ構造は見当たりません。
Array
Haxeではこのように機能しますか?(償却済み)O(1)の最後の要素を追加/削除できますか?
多くの言語には、C ++vector<T>
やC#のように、必要に応じてサイズを変更できる標準タイプがありますArrayList<T>
。しかし、Haxeではそのようなデータ構造は見当たりません。
Array
Haxeではこのように機能しますか?(償却済み)O(1)の最後の要素を追加/削除できますか?
技術的にはもちろん、これはプラットフォーム固有の実装に依存しますが、O(1)を償却Array
したと考えるのは安全です。これは、push
達成するのが非常に簡単だからです(nekoの実装はそれをかなりうまく示しています)。
スパースネスをサポートする動的サイズのアレイが付属するすべてのプラットフォームで、Haxeは実装にそれらを使用します(フラッシュ、js、phpであるAFAIK)が、それらが不十分なメトリックを示した場合、それらは再実装されると思います。
List
ランダムアクセスが重要でない場合は、もあることに注意してください。ただし、一部のプラットフォームでは、これより速くなることはなくArray
、小さいだけです。