CArray的效率

前面已經講過CArray的使用方法和一些注意事項了,現在,我再給大家說說這個模板類的效率問題。

使用動態數組,我們所關注的,也許是它的可伸縮性,其實,也就是對內存的動態管理。當然,這個動態數組還必須能像普通數組那樣使用下標來直接獲取元素,這和它的效率是直接相關的。

在CArray的內部,的確保存着一塊動態創建的內存塊,它線性的存儲已經存在的元素,從而保證了它可以像普通數組一樣,用下標作爲偏移量來直接獲取元素,不過,這並不是它的全部,我們現在,所要考慮的問題是:它如何動態的追加元素。

CArray追加元素使用Add函數,非常的簡單通用。此時,在CArray的內部,將會刪除之前的內存,而重新申請一塊新的足以存放追加後所有元素的內存,顯然,這對於頻繁加減元素的操作來說,會大大的降低效率,尤其在這個數組的元素數目已經足夠大的時候,每次刪創將會嚴重的影響程序運行的效率,從而我們不得不放棄這個讓人既愛且恨的傢伙,那麼有沒有什麼樣的數據結構可以替換此時的CArray呢?當然,那就是我們的明日之星 --- CList。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章