FIFO队列和优先队列
程序员文章站
2024-03-18 11:22:28
...
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;
}
上一篇: 链表实现的队列