iT邦幫忙

2024 iThome 鐵人賽

0
自我挑戰組

C++自學系列 第 25

Day 25 STL容器(vector, deque, list)

  • 分享至 

  • xImage
  •  

STL容器(vector, deque, list)
**vector:**是一個動態大小的數組,可以隨著元素的增加自動擴展容量。它支持隨機存取,元素可以通過索引直接訪問,因此查找和訪問元素的速度非常快
‧動態大小:可以自動擴展或收縮,當添加或刪除元素時,容器會根據需要重新分配內存
‧連續內在存儲:元素在內存是連續存儲的,支持快速的隨機訪問,時間複雜度O(1)
‧快速末尾操作:在末尾添加或刪除元素的操作適高效的,時間複雜度O(1)
‧隨機訪問;支持使用索引快速訪問任何元素
‧擴展功能:提供許多成員函數來支持操作,如排序、查找、插入、刪除等

**deque:**是雙端隊列(Double Ended Queue),允許在序列的兩端(前端和後端)快速插入和刪除元素。相比vector可以在兩端高效地添加和移除元素
‧雙端插入和刪除:允許在前後兩端進行高效的插入和刪除操作
‧隨機存取:和vector一樣,支持通過索引隨機訪問元素
‧動態擴展:可以根據需要動態擴展大小

**list:**是一個雙向鏈表(Doubly Linked List),每個元素包含兩個指針,指向前一個和下一個元素
‧高效的插入和刪除
‧不支持隨機存取:不能通過索引訪問元素,只能進行順序遍歷
‧雙向鍊接:允許從任一方向進行遍歷

總結:
vector適合需要頻繁隨機訪問元素的場合,但插入和刪除效率較低
deque允許在前後端高效插入和刪除元素,適合需要兩端操作的情況
list適合需要在中間插入和刪除元素的場景,但不支持隨機存取,遍歷速度較慢


上一篇
Day 24 STL簡介與容器概覽
下一篇
Day 26 STL容器(set, map, unordered_set, unordered_map)
系列文
C++自學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言