deque(<deque>)雙端隊列,特點:
O(1) 插入/刪除,中間 O(n)operator[]、at(),O(1)+n、-n、[]vector 擴容廉價reserve),shrink_to_fit() 釋放多餘內存deque c; // 空
deque c(c2); // 複製
deque c = c2; // 複製
deque c(move(c2)); // 移動
deque c(n); // n個默認值
deque c(n, val); // n個val
deque c(beg, end); // 範圍
deque c = {1,2,3}; // 初始化列表
c.assign({4,5,6}); // 列表賦值
c.assign(n, val); // 重複值賦值
c.assign(beg, end); // 範圍賦值
c1.swap(c2); swap(c1, c2); // 交換
c[idx] // 無邊界檢查
c.at(idx) // 越界拋出 out_of_range
c.front() // 首元素
c.back() // 尾元素
c.begin(), c.end()
c.cbegin(), c.cend()
c.rbegin(), c.rend() // 逆向
c.crbegin(), c.crend() // 逆向常量
c.push_back(val) // 尾部插入
c.pop_back() // 尾部刪除
c.push_front(val) // 首部插入
c.pop_front() // 首部刪除
c.insert(pos, val) // pos前插入,返回新元素迭代器
c.insert(pos, n, val) // pos前插入n個
c.insert(pos, beg, end) // pos前插入範圍
c.insert(pos, init_list) // pos前插入列表
c.emplace(pos, args...) // pos前原地構造
c.emplace_back(args...) // 尾部原地構造
c.emplace_front(args...) // 首部原地構造
c.erase(pos) // 刪除pos,返回下一個
c.erase(beg, end) // 刪除範圍
c.resize(n) / c.resize(n, val)
c.clear() // 清空
c.shrink_to_fit() // 釋放多餘容量
c.empty() // 是否為空
c.size() // 元素數量
c.max_size() // 最大容量
c1 == c2, !=, <, >, <=, >= // 字典序比較
deque coll;
coll.assign(3, "string");
coll.push_back("last string");
coll.push_front("first string");
// 輸出: first string / string / string / string / last string
coll.pop_front(); coll.pop_back();
for (size_t i=1; i
first string string string string last string string another string another string resized string
dequevectorlist/forward_listarray