vector list deque

vector:
向量容器,使用線性存儲結構,可以像數組一樣隨機(下標)訪問元素,還可以在尾部插入元素(用push_back()函數)。特點:訪問元素速度快,但插入、刪除操作速度慢;
list:
雙向鏈表容器,數據元素是通過鏈表指針串連成邏輯意義上的線性表,但在物理內存中數據可以是不連續的。特點:對鏈表的任一位置的元素進行插入、刪除和查找操作都是極快速的,但由於通過指針串連而成(這裏的指針也佔用了內存空間),不能通過下標訪問元素,因此list容器訪問元素的速度比vector慢;
deque:
雙端隊列容器,跟vector一樣和採用線性表存儲結構,但與vector唯一不同的是,deque採用分塊的線性存儲結構來存儲數據,每塊的大小一般爲512字節,稱爲一個deque塊,所有的deque塊使用一個Map塊進行管理,每個Map數據項記錄各個deque塊的首地址。特點:可以在deque塊的頭部和尾部插入和刪除元素而不需移動其他元素,所以插入和刪除操作速度比vector快。一般來說,當考慮到容器元素的內存分配策略和操作的性能時,deque相對於vector更有優勢。
總結:
一般來說,
當訪問元素次數比較多時,用vector比較好;
當插入、刪除、查找元素的次數比較多時,用list比較好;
當訪問線性表的頭部和尾部、插入、刪除次數較多時,用deque比較好;

發佈了159 篇原創文章 · 獲贊 16 · 訪問量 102萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章