FIFO佇列和優先佇列
阿新 • • 發佈:2018-11-09
FIFO佇列
定義:先進先出的儲存結構(刪除時先刪最後一個元素)
queue<型別> q;
增:
q.push(元素值); //在隊尾加入一個元素 void
刪:
q.pop(); //刪除元素,刪除隊首元素 void
改:
查:
q.size(); //返回佇列中剩餘元素個數 int q.empty(); //返回佇列是否為空 bool q.front(); //返回隊首元素,不刪除 q.back(); //返回隊尾元素,不刪除
優先佇列
定義:先進先出的儲存結構(刪除時先刪第一個元素)
priority_queue <型別> q;
增:
q.push(元素值); //在隊尾加入一個元素 void
刪:
q.pop(); //刪除元素,刪除隊首元素 void
改:
查:
q.size(); //返回佇列中剩餘元素個數 int q.empty(); //返回佇列是否為空 bool q.top(); //返回優先佇列對頂元素,返回優先佇列中有最高優先順序的元素(可重定義優先順序)
重新定義佇列優先順序
#include<bits/stdc++.h> using namespace std; struct cmp{ bool operator ()(int &a,int &b){ return a>b;//最小值優先 } }; int main(){ //priority_queue<int,vector<int>,cmp1>que1;//最小值優先 priority_queue<int,vector<int>,cmp > q; q.push(10); q.push(1); q.push(10); q.push(20); cout<<q.top()<<endl; q.pop(); cout<<q.top()<<endl; q.pop(); cout<<q.top()<<endl; q.pop(); cout<<q.top()<<endl; q.pop(); return 0; }