1. 程式人生 > >【C++ STL】容器的選擇

【C++ STL】容器的選擇

但是 函數 pair list 成員 cto 允許 數據 結構

c++提供了各具特長的容器,那麽我們該如何選擇最佳的容器?

  • 缺省狀態下應該選擇vector,因為vector內部結構最簡單,並允許隨機存取,所以數據的存取十分方便,數據的處理也快。
  • 如果經常要在頭部和尾部安插和移動元素,應該采用deque,如果希望元素被移除時,容器能夠自動縮減內存,也應該使用deque。
  • 如果經常在容器的中段執行元素的安插、移除和移動,可以使用list,list提供特殊的成員函數,可以在常數時間內從A容器將元素轉移到B容器,但是list不支持隨機存取,所以如果只知道list的頭部元素,需要訪問list的中部元素,性能會大打折扣。
  • 如果經常需要根據某個準則來搜尋某個元素,那麽應該使用“以該排序準則對元素進行排序的”set或者multiset。
  • 如果需要key/value pair,應當使用map或者multimap。如果需要關聯數組,也可以使用map或者multimap。

【C++ STL】容器的選擇