茱莉亚推了吗!需要整个阵列的副本

  • 本文关键字:阵列 副本 茱莉亚 julia
  • 更新时间 :
  • 英文 :


查看push!的代码!,表示数组已增长到一个元素的大小。阵列是否在逻辑上增加了一个元素的大小,而底层存储只要大于或等于所需的存储元素就保持不变,并且在存储空间已满无法容纳额外元素时,通过创建一个明显更大的存储空间并将整个阵列复制到其中来增加?或者,是否必须在每次推送时重新创建数组!活动

function push!(a::Array{T,1}, item) where T
# convert first so we don't grow the array if the assignment won't work
itemT = convert(T, item)
_growend!(a, 1)
a[end] = itemT
return a
end

Julia数组以摊销成本的方式增长(目前增长因子为2(,请参见例如。https://en.wikipedia.org/wiki/Dynamic_array#Geometric_expansion_and_amortized_cost.

最新更新