栈:stack 队列:queue
头文件:
#include<stack>#include<queue>
using namespace std;
定义:stack<int> stk; queue<int> q;
栈:
s.empty() 如果栈为空返回true,否则返回false
s.size() 返回栈中元素的个数
s.pop() 删除栈顶元素但不返回其值
s.top() 返回栈顶的元素,但不删除该元素
s.push() 在栈顶压入新元素
队列:
q.empty() 如果队列为空返回true,否则返回false
q.size() 返回队列中元素的个数
q.pop() 删除队列首元素但不返回其值
q.front() 返回队首元素的值,但不删除该元素
q.push() 在队尾压入新元素
q.back() 返回队列尾元素的值,但不删除该元素
优先队列:定义:priority_queue<int > que; 默认按照由大到小排
栈和队列基本代码
#include<stdio.h>
#include<stack>//栈
#include<queue>//队列
#include<algorithm>
using namespace std;
int main()
{
//栈
stack<int > sta;
push(5);//先放入
sta.push(2);//后放先出
int x=sta.top();//取最上边的数
printf("%d\n",x);
sta.pop();//删除容器最上边的数
int y=sta.top();
printf("%d\n",y);
//队列
queue<int > que;
que.push(3);//先进
que.push(5);//后进但从先进的出
int z=que.front();//3
printf("%d\n",z);
que.pop();//删除 先进
int t=que.front();
printf("%d\n",t);
return 0;
}