1. 程式人生 > >STL Deque(雙向佇列) C++

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;