2013-02-04 22 views
0

的文章在維基百科Dynamic Array動態數組 - 它是否在元素被移除時釋放內存?

作爲最後的空存儲單元被填滿,然後拷貝整個數據到新的陣列中的幾何級數量它會自動分配內存去。當一個元素的數量大於增加的數量時會發生什麼?它是否也會自動釋放內存?或者它保持原樣? 例如上述維基百科鏈路的右上方的圖像中,

enter image description here

最後步驟2後| 7 | 1 | 3 | 8 | 4 |一個刪除除了2之外的所有元素它是否分配較小尺寸的內存並將整個內容複製到新內存?側面的問題:如何或者什麼決定分配給動態數組的內存初始量是多少?

回答

1

你引用的文章回答你的問題:

「許多動態數組也要回收一些底層存儲的,如果它的大小低於某一閾值,[...]」

這真的很值得一讀;-)

對於事先知道需要特定大小的情況,某些實現在C++標準庫中提供了一種特定的方法(「reserve()」)。

相關問題