deque queue and priority_queue
deque queue and priority_queue
stl-deque
deque 是雙端隊列,可實現棧與隊列的操作。
deque支持deque_ob[i] 形式的隨機存取。
stl-queue
queue的基本操作有:
入隊,如例:q.push(x); 將x 接到隊列的末端。
出隊,如例:q.pop(); 彈出隊列的第一個元素,注意,並不會返回被彈出元素的值。
訪問隊首元素,如例:q.front(),即最早被壓入隊列的元素。
訪問隊尾元素,如例:q.back(),即最後被壓入隊列的元素。
判斷隊列空,如例:q.empty(),當隊列空時,返回true。
查詢當前容量,如例:q.size();
不支持[i]下標隨機訪問和clear()函數。
stl-priority_queue
普通的隊列是一種先進先出的數據結構,元素在隊尾進隊而從隊頭出隊。在優先隊列中,元素被賦予優先級,最大(或最小)的元素在隊頭。
對於自定義的結構體,重載'<'(小於號)就會保證隊頭元素當前最大,即降序排序。這與sort剛好相反。
頭文件為<queue>。此類沒有clear()成員函數,隻能逐個pop()。
常用的操作如下:
empty() 如果優先隊列為空,則返回真
pop() 刪除第一個元素
push() 加入一個元素
size() 返回優先隊列中擁有的元素的個數
top() 返回優先隊列中有最高優先級的元素
#include<iostream> #include<queue> using namespace std; int main(){ priority_queue<int ,vector<int>,greater<int>> q; q.push(3);q.push(1);q.push(2); for(;!q.empty();q.pop()) cout<<q.top(); cout<<endl; { priority_queue<int ,vector<int>> q; q.push(3);q.push(1);q.push(2); for(;!q.empty();q.pop()) cout<<q.top(); }//此對括號作用域內的q不會與上麵的q衝突 return 0; } /*下麵是priority_queue的定義 template<typename _Tp, typename _Sequence = vector<_Tp>, typename _Compare = less<typename _Sequence::value_type> > class priority_queue{}; */ /*123 321 Process returned 0 (0x0) execution time : 0.124 s Press any key to continue. */
最後更新:2017-04-03 12:56:01
上一篇:
stl-vector
下一篇:
查找與散列(Hash)
使用Java調用Oracle數據庫的存儲過程實例
戰勝柯潔後,AI在悄悄潛入人類下一個智慧堡壘
Java中的隨機數生成器:Random,ThreadLocalRandom,SecureRandom
spring-boot+spring-session集成
阿裏雲大學安全課程-阿裏雲首席安全研究員吳瀚清:WannaCry事件最“細思恐極“的一個事實是?
【 Release Notes】CodePipeline 產品更新
Java麵向對象高級--final關鍵字
Apache下實現禁止目錄瀏覽
Wi-Fi曝安全漏洞 麵臨KRACK攻擊風險
Spring Cloud 接入 EDAS 之服務發現篇