这里记一下STL的队列和栈。
队列。
头文件<queue>,操作有pop,push,front,empty,size,back,声明是queue<数据类型>q。
更有用的是优先队列。
头文件同队列,操作有pop,push,top,empty,size,声明是priority_queue<数据类型>q。
需要学习的是一些cmp的写法,现在习惯写在数据里面,还在学习中。。。
hdu1509为模板题。
#include <cstdio> #include <queue> using namespace std; int co; char s[40]; struct node { char name[20]; int num,pri,ID; bool operator < (const node &k) const { if(k.pri!=pri) return pri>k.pri; else return num>k.num; } }p; priority_queue<node>q; int main() { while(scanf("%s",s)!=EOF) { if(s[0]==‘P‘) { scanf("%s%d%d",p.name,&p.ID,&p.pri); ++co; p.num=co; q.push(p); }else { if(q.empty()) printf("EMPTY QUEUE!\n"); else { p=q.top(); q.pop(); printf("%s %d\n",p.name,p.ID); } } } return 0; }
栈。
头文件是<stack>。操作有pop,push,top,empty,size,声明是stack<数据类型>s。
原文:http://www.cnblogs.com/cons/p/5188072.html