前面已經講過CArray的使用方法和一些注意事項了,現在,我再給大家說說這個模板類的效率問題。
使用動態數組,我們所關注的,也許是它的可伸縮性,其實,也就是對內存的動態管理。當然,這個動態數組還必須能像普通數組那樣使用下標來直接獲取元素,這和它的效率是直接相關的。
在CArray的內部,的確保存着一塊動態創建的內存塊,它線性的存儲已經存在的元素,從而保證了它可以像普通數組一樣,用下標作爲偏移量來直接獲取元素,不過,這並不是它的全部,我們現在,所要考慮的問題是:它如何動態的追加元素。
CArray追加元素使用Add函數,非常的簡單通用。此時,在CArray的內部,將會刪除之前的內存,而重新申請一塊新的足以存放追加後所有元素的內存,顯然,這對於頻繁加減元素的操作來說,會大大的降低效率,尤其在這個數組的元素數目已經足夠大的時候,每次刪創將會嚴重的影響程序運行的效率,從而我們不得不放棄這個讓人既愛且恨的傢伙,那麼有沒有什麼樣的數據結構可以替換此時的CArray呢?當然,那就是我們的明日之星 --- CList。