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;
}

运行结果:

原文地址:https://www.cnblogs.com/zhoubo123/p/11510732.html