程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++技術問題總結-第7篇 map、vector、list、deque各自的使用場合

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

編輯:C++入門知識

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


map是關聯式的,vector、list、deque是序列式的。

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


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

優點:

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

? 支持隨機訪問,即支持[]和vector.at()。

缺點:

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

? 只能在vector的最後進行push和pop。


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

優點:

? 方便插入和刪除。

? 可在兩端push、pop。

缺點:不能隨機訪問。


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

優點:

? 隨機訪問。

? 方便插入和刪除。

? 可在兩端push、pop。

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


使用場合總結:

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

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

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

? 鍵值對,一對一映射,采用map。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved