C++技術問題總結-第7篇 map、vector、list、deque各自的使用場合

    map是關聯式的,vectorlistdeque是序列式的。

    map:底層機制RB-tree(紅黑樹),元素自動排序,鍵值對。


    vector:操作方式與array相似,動態空間增長。是連續性空間,支持隨機訪問。

    優點:

Ø 內存動態增長,不需要指定內存大小。

Ø 支持隨機訪問,即支持[]vector.at()

    缺點:

Ø 在內部進行插入刪除操作效率低。

Ø 只能在vector的最後進行pushpop


    list:對空間的運用有絕對的精準,一點也不浪費。刪除插入簡單,但不支持隨機訪問。雙向線性列表。

    優點:

Ø 方便插入和刪除。

Ø 可在兩端pushpop

    缺點:不能隨機訪問。


    deque:雙向開口的連續性空間。頭尾兩端分別做元素的插入和刪除。

    優點:

Ø 隨機訪問。

Ø 方便插入和刪除。

Ø 可在兩端pushpop

    缺點:內部實現複雜,效率較低。排序等不適用。


    使用場合總結:

Ø 需要高效的存取,不在於插入和刪除效率,使用vector

Ø 需要大量插入和刪除,不關心存取,使用list

Ø 關心存取,且兩端數據進行插入和刪除,使用deque

Ø 鍵值對,一對一映射,採用map

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