STL Deque(雙向佇列) C

2021-08-20 03:48:13 字數 1165 閱讀 7559

標頭檔案:#include(動態一維陣列)

定義: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;

STL deque 佇列基本用法

deque雙向佇列是一種雙向開口的連續線性空間,可以高效的在頭尾兩端插入和刪除元素,deque在介面上和vector非常相似,下面列出deque的常用成員函式 deque的實現比較複雜,內部會維護乙個map 注意!不是stl中的map容器 即一小塊連續的空間,該空間中每個元素都是指標,指向另一段 較...

c 極簡總結 STL deque

deque usually pronounced like deck is an irregular acronym of double ended queue 雙端陣列,可以對頭端和尾端進行插入刪除操作。1 deque與vector的頭插速度 2 deque 內部中控器 deque 內部有個中控器...

UVA 12100 列印佇列 STL deque

給定n個優先順序列印佇列,然後從0開始編號到n 1。出隊乙個元素,如果他是佇列中優先順序最高的,列印 耗時一分鐘 否則放到隊尾 不耗時 給定乙個m,求位置m的檔案列印的時間。用乙個priority queue去尋找優先順序最高的元素,然後用乙個deque 去模擬佇列 pair第乙個元素是優先順序,第...