2

私は最近 Objective-C を使用していますが、C++ の世界から来て、ネイティブの Objective-C コレクションの容量を指定する意味がわかりません。

C++ では、コンテナーはオブジェクトまたは参照型 (参照ラッパーやポインターなど) で満たすことができるため、初期容量を指定することは理にかなっています。これは、大きなオブジェクトのシーケンスにメモリを事前に割り当てると、パフォーマンスが大幅に向上する可能性があるためです。ただし、Objective-C では、コレクションは動的に割り当てられたオブジェクトへの参照、つまりポインターのみを含むことができます。結果として、最悪の場合、コレクションのサイズが元の容量を超える場合にポインターのみをコピーする必要がある場合、容量を指定することのパフォーマンス上の利点は何だろうか。

明らかに、メモリ モデルに対する私の理解が不足しているため、何が欠けているのでしょうか?

4

1 に答える 1