我注意到在swift中没有使用特定大小声明数组。我知道c ++不是这种情况,使用动态列表我需要使用矢量对象。 swift中是否有某个矢量对象,或者数组是否在运行时调整大小?
答案 0 :(得分:2)
swift中是否有某个矢量对象,或者数组是否在运行时调整大小?
后者:任何数组都会保留足够数量的内存来保存其元素。无论何时将元素附加到数组,使数组超出保留容量,它会分配更大的内存区域,其大小是旧存储容量的倍数。
指数增长意味着平均append()
(添加元素)函数的时间性能。每当内存增加时,元素都会被复制到新存储中。当然,当触发内存重新分配时,append()
函数的性能显着减少,但随着阵列变得越来越大,这种情况发生的频率会降低。
我建议您查看Array Documentation,尤其是"增加数组大小" 章节。如果要在数组中预分配空间,最好知道reserveCapacity(_:)
方法。有关capacity
。