STL stack的用法:
头文件:#include<stack>
注意分配空间 的using namespace std;
基本操作:
push(x) 将x加入栈中,即入栈操作
pop() 出栈操作(删除栈顶),只是出栈,没有返回值
top() 返回第一个元素(栈顶元素)
size() 返回栈中的元素个数
empty() 当栈为空时,返回 true
STL queue的用法:
头文件:#include<queue>
基本操作:
push(x) 将x压入队列的末端
pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值
front() 返回第一个元素(队顶元素)
back() 返回最后被压入的元素(队尾元素)
empty() 当队列为空时,返回true
size() 返回队列的长度
#include<stack>
#include<queue>
#include <vector>
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int n;
while(~scanf("%d",&n))
{
int i;
stack<int>ic;
queue<int>ixy;
int a;
for(i=0;i<n;i++)
{
scanf("%d",&a);
ic.push(a);//入栈
ixy.push(a);//如列队
}
cout<<"queue\n";
while(!ixy.empty())
{
cout<<ixy.front()<<" ";
ixy.pop();
}
cout<<endl;
cout<<"stack\n";
while(!ic.empty())
{
printf("%d ",ic.top());
ic.pop();
}
printf("\n");
}
}
-----------------------------------------------------------------
#include<queue>
#include<iostream>
using namespace std;
struct yy
{
int x,y;
};
queue<yy>l;//自定义结构体队列,stack也可以这样用
int main()
{
int n;
yy a;
while(cin>>n)
{
for(int i=0;i<n;i++)
{
cin>>a.x>>a.y;
l.push(a);
}
while(!l.empty())
{
cout<<l.front().x<<" "<<l.front().y<<endl;
l.pop();
}
}
}