栈的特点:先进先出,只能在栈顶插入元素
头文件:#include<stack>
构造析构:
stack<int/double/…> a:创建一个空的stack//下面以int为例
stack<int> b(a):将a复制到b
a.push(t):在栈项增加t;
a.pop():将栈顶元素弹出;
a.top():返回栈顶元素;
a.size():返回栈的大小;
a.empty():判断栈是否为空,空返回0,否则返回非0;
代码:
#include<cstdio>
#include<stack>
using namespace std;
int main()
{
stack<int> a;
int n;
scanf("%d",&n);
int t;
for(int i=0; i<n; i++)
{
scanf("%d",&t);
a.push(t);
}
printf("%d\n",a.size());
for(int i=0; i<n; i++)
a.pop();
printf("%d\n",a.size());
return 0;
}
队列:
#include<quene>:①创建一个队;②将a,b,c,d,e,f……依次入队;③若队列不为空,将元素出队。
queue <int > q:使用前先定义一个变量,且定义时已经初始化;
q.push(t):初始化队列,将t赋给它(进队列);
while(!q.empty()):当队列为空;
q.front():打印队列首元素;
q.pop():抛弃队列首元素(出队列)。