STL中的queue用法与stack用法对比
<queue>是STL中的队列,特点是先进先出,方便我们不用自己去构造队列,包含在头文件#include<queue>中。
定义一个队列:queue<int> q;(数据类型可以根据自己的需要来定义)
基本操作:
入队:q.push(x),将元素添加到队列的末尾。
出队:q.pop(),弹出队列的第一个元素(并不返回该元素的值)。
访问队首元素:q.front(),返回队首元素的值。
访问队尾元素:q.back(),放回队尾元素的值。
判断队列是否为空:q.empty(),如果队列为空,返回true。
计算队列中的元素个数:q.size(),返回队列中的元素个数。
举例:
#include<iostream>
#include<queue>
using namespace std;
int main()
{
queue<int> q;
q.push(1);//将一到四的添加到队列中,每次的添加时都添加到队列的末尾,添加完之后顺序为1,2,3,4;
q.push(2);
q.push(3);
q.push(4);
int qlen=q.size();//计算队列中的元素个数;
cout<<"队列中的元素个数为:"<<qlen<<endl;
while(!q.empty())//判断队列是否为空,为空时就跳出循环;
{
int x=q.front();//访问队列的第一个元素;
cout<<x<<" ";//输出队首元素;
q.pop(); //弹出队首元素;
}
return 0;
}
运行结果:
<stack>是STL中的栈,特点是后进先出(跟我们平时放书在箱子中同理),包含在头文件#include<stack>
定义一个栈:stack<int> s;(数据类型可以根据自己的需要来定义)
基本操作:
入栈:s.push(x);将x添加到 栈中(添加到栈顶)。
出栈:s.top();返回栈顶元素。
弹出栈顶元素:s.pop();
计算栈中的元素个数:s.size();
判断栈是否为空:s.empty();栈为空数返回true。
举例:
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack<int> s;
s.push(1);//将1,2,3,4依次放入到栈顶;
s.push(2);
s.push(3);
s.push(4);
int slen=s.size();//计算栈 中的元素个数;
cout<<"栈中的元素个数为:"<<slen<<endl;
while(!s.empty())//如果为空栈,跳出循环
{
int x=s.top();//返回栈顶元素;
cout<<x<<" ";
s.pop();//弹出栈顶元素;
}
return 0;
}
运行结果: