在入門章節中,我們認識到甚麼是陣列以及如何應用它。但是如果我們想要額外增加 / 刪除內容呢?我們可以使用前面介紹的 vector 資料結構。只是你會發現到,你只能將變數從後加入 / 移除,但如果你想要往前呢?因為 vector 只能從後加入 / 移除,所以 deque 將是你的選擇。
簡介#
deque ,全稱 double-ended queue ,意旨 " 雙端佇列 " ,在使用 。
當我們使用 vector 和 deque 時,一樣都可以隨機存取,只是有兩個不同的地方。
- 和
vector不同,deque不具有記憶體連續性。 deque可以存取到前端資料,且可以從前端加入 / 移除資料。
以下是 deque 的示意圖:
圖片遺失
我們可以發現到, deque 的功能非常豐富,也補足了 vector 沒有的功能。
補充
由於 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
