1:栈stack(先进后出)
基本操作:
s.empty(); //栈是否为空
s.top(); //取出栈顶元素
s.push(X); //压入新的元素
s.pop(); //删除栈顶元素
s.size(); //返回栈中元素数目
2:队列squeue(先进先出)
基本操作:
q.back(); //返回最后一个元素
q.empty(); //判断队列是否为空
q.front(); //返回队头元素
q.pop(); //删除队头
q.push(X); //新元素入队
3:优先队列:priority-queue
基本操作:
priority_queue<int> q; //按照元素从大到小出队
priority_queue<int,vector<int>,greater<int> > q; //按照元素从小到大出队
2:
struct cmp
{
bool operator() (int x,int y)
{
return x>y; //x小的优先级最高
}
};
priority_queue<int,vector<int>,cmp> q;