就总结下写法吧老是忘啊属实dd
1.队列及相关操作
1 queue <Type> q;
1 q.size();//返回q里元素个数 2 q.empty();//返回q是否为空,空则返回1,否则返回0 3 q.push(k);//末尾插入k 4 q.pop();//删掉q的第一个元素 5 q.top();//返回q的第一个元素 ≈ q.front(); 6 q.back();//返回q的末尾元素
2.简单优先队列:默认降序队列
1 priority_queue <Type> q;
3.自定义优先队列
先把原型摆上: priority_queue<Type, Container, Functional>
1 //升序队列 2 priority_queue <Type,vector<Type>,greater<Type> > q; 3 4 //降序队列 5 priority_queue <Type,vector<Type>,less<Type> >q;
1 //(一) 写比较函数实现降序队列 2 struct tmp1 { int x; int y; }; 3 4 struct tmp2 { 5 bool operator() (tmp1 a, tmp1 b) { 6 return a.y < b.y; 7 } 8 }; 9 10 priority_queue<tmp1, vector<tmp1>, tmp2> f;
1 //(一)在结构体里重载运算符实现降序队列 2 struct tmp1 { 3 int x; int y; 4 tmp1(int a,int b) {x = a; y=b;} 5 bool operator<(const tmp1& c) const{ 6 return y < c.y; 7 } 8 }; 9 10 priority_queue<tmp1> d;
原文地址:https://www.cnblogs.com/noobimp/p/10325350.html
时间: 2024-10-12 01:54:45