Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用具有容量的阵列比使用阵列有什么优势?_Iphone_Arrays_Nsmutablearray_Nsarray - Fatal编程技术网

Iphone 使用具有容量的阵列比使用阵列有什么优势?

Iphone 使用具有容量的阵列比使用阵列有什么优势?,iphone,arrays,nsmutablearray,nsarray,Iphone,Arrays,Nsmutablearray,Nsarray,创建数组时不需要指定数组大小,对吗? 那么,为什么阵列需要容量呢? 如果我将阵列的大小设置为小于实际需要的大小,可以吗?阵列的容量是一种优化-这是不必要的。如果您提前知道元素的数量,系统可以在一个系统调用和一块内存中分配存储。否则,系统必须在稍后添加更多元素时调整数组的大小,这往往很慢,需要额外的分配,并且可能需要将数据从旧缓冲区复制到新缓冲区 array创建一个空数组(并在添加对象时分配内存),而arrayWithCapacity创建一个分配了足够内存来容纳这些对象的数组,但您可以在需要时随时

创建数组时不需要指定数组大小,对吗? 那么,为什么阵列需要容量呢?
如果我将阵列的大小设置为小于实际需要的大小,可以吗?

阵列的容量是一种优化-这是不必要的。如果您提前知道元素的数量,系统可以在一个系统调用和一块内存中分配存储。否则,系统必须在稍后添加更多元素时调整数组的大小,这往往很慢,需要额外的分配,并且可能需要将数据从旧缓冲区复制到新缓冲区

array
创建一个空数组(并在添加对象时分配内存),而
arrayWithCapacity
创建一个分配了足够内存来容纳这些对象的数组,但您可以在需要时随时扩展它