C++容器選擇

下面列舉了一些選擇容器類型的法則:
1. 如果程序要求隨機訪問元素,則應使用 vector 或 deque 容器。
2. 如果程序必須在容器的中間位置插入或刪除元素,則應採用 list 容器。
3. 如果程序不是在容器的中間位置,而是在容器首部或尾部插入或刪除元
素,則應採用 deque 容器。
4. 如果只需在讀取輸入時在容器的中間位置插入元素,然後需要隨機訪問元
素,則可考慮在輸入時將元素讀入到一個 list 容器,接着對此容器重新
排序,使其適合順序訪問,然後將排序後的 list 容器複製到一個 vector
容器。
如果程序既需要隨機訪問又必須在容器的中間位置插入或刪除元素,那應該
怎麼辦呢?
此時,選擇何種容器取決於下面兩種操作付出的相對代價:隨機訪問 list 容
器元素的代價,以及在 vector 或 deque 容器中插入/刪除元素時複製元素的
代價。通常來說,應用中佔優勢的操作(程序中更多使用的是訪問操作還是插入
/刪除操作)將決定應該什麼類型的容器。
決定使用哪種容器可能要求剖析各種容器類型完成應用所要求的各類操作的性能。
如果無法確定某種應用應該採用哪種容器,則編寫代碼時嘗試只使用 vector 和
lists 容器都提供的操作:使用迭代器,而不是下標,並且避免隨機訪問元素。
這樣編寫,在必要時,可很方便地將程序從使用 vector 容器修改爲使用 list 的
容器。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章