STL Deque(雙向佇列) C++
標頭檔案:#include<deque> (動態一維陣列)
定義:deque<變數型別> 變數名; 例:deque<變數型別> dq;
特點:支援隨機訪問(陣列訪問下表從0開始;at方法訪問,會丟擲異常),效能不如vector;
可以在內部進行插入和刪除操作,效能不如list;//效能介於vector和list之間
deque兩端具有快速插入和刪除的能力;
常用方法(加粗):
兩個(正向)迭代器:begin()和end();
兩個(反向)迭代器:rbegin()和rend();//以上兩組用於遍歷整個雙向佇列;
清空:clear();//清除整個佇列的元素;
插入:push_front();//從頭部插入一個元素;
push_back();//從尾部插入一個元素;
insert(); //在某個位置插入一個元素;(引數迭代器,元素)
刪除:pop_front(); // 頭部彈出一個元素;
pop_back(); //尾部彈出一個元素;
erase(); //刪除任意位置的一個元素;(引數迭代器)
注erase函式在deque和vector中儘量少使用,時間複雜度較高(效率低)
取值:front(); //返回頭部第一個元素;
back(); //返回尾部第一個元素;
at(); //返回對應index位置的元素,會丟擲異常;
[] 陣列訪問方式;//以陣列下標的形式訪問不會丟擲異常;
判斷是否為空:empty();//判斷deque是否為空;
大小:size(); //返回deque的大小;
交換:swap(); //交換兩個deque;