開啟章節選單
Deque
非常罕見在入門章節中,我們認識到甚麼是陣列以及如何應用它。但是如果我們想要額外增加 / 刪除內容呢?我們可以使用前面介紹的 vector 資料結構。只是你會發現到,你只能將變數從後加入 / 移除,但如果你想要往前呢?因為 vector
只能從後加入 / 移除,所以 deque
將是你的選擇。
簡介
deque
,全稱 double-ended queue ,意旨 " 雙端佇列 " ,在使用 。
當我們使用 vector
和 deque
時,一樣都可以隨機存取,只是有兩個不同的地方。
- 和
vector
不同,deque
不具有記憶體連續性。 deque
可以存取到前端資料,且可以從前端加入 / 移除資料。
以下是 deque
的示意圖:
圖片遺失
我們可以發現到, deque
的功能非常豐富,也補足了 vector
沒有的功能。
語法
//deque<變數類型> 名稱; deque<int> dq;
舉例
#include <bits/stdc++.h> using namespace std; deque<int> dq; int arr[5] = {2, 3, 5, 4, 1}; void deque_print() { cout << "deque front : " << dq.front() << '\n' << "deque back : " << dq.back() << '\n' << '\n'; return; } int main() { for (int i = 0; i < 5; i++) { dq.push_back(arr[i]); } deque_print(); dq.pop_back(); deque_print(); dq.push_front(arr[2]); deque_print(); return 0; }
deque front : 2 deque back : 1 deque front : 2 deque back : 4 deque front : 5 deque back : 4