2
如果你的程序中有一個數組的大小非常大,那麼將數組聲明爲它所能達到的最大大小,然後控制程序可以訪問的數組的大小會更有效率,或者在整個程序過程中相當頻繁地改變陣列的大小?在Swift中,它是如何有效地追加數組?
如果你的程序中有一個數組的大小非常大,那麼將數組聲明爲它所能達到的最大大小,然後控制程序可以訪問的數組的大小會更有效率,或者在整個程序過程中相當頻繁地改變陣列的大小?在Swift中,它是如何有效地追加數組?
從Swift headers,有此有關數組生長和容量:
當一個數組的連續的存儲填滿了,新的存儲必須被分配和元素必須被移動到新的存儲。 Array,ContiguousArray和Slice共享一種指數增長策略,通過多次調用進行攤銷時,會附加一個恆定時間操作。除了
count
屬性之外,這些數組類型還有一個capacity
,它們反映了它們在不重新分配的情況下存儲元素的潛力,並且當您知道要存儲多少元素時,可以致電reserveCapacity
搶先重新分配並防止中間重新分配。
閱讀,我會說最好是保留你需要的容量,只有當你發現它確實是一個問題時纔回來優化它。如果你一直在僞裝這個長度,你會爲自己做更多的工作。