C++(STL) 栈(stack)和队列(queue)(转载)

在C++标准库(STL)中,实现了栈和队列,方便使用,并提供了若干方法。以下作简要介绍。

1. 栈(stack)说明及举例:

使用栈,要先包含头文件 : #include<stack>

定义栈,以如下形式实现: stack<Type> s; 其中Type为数据类型(如 int,float,char等)。

栈的主要操作:
s.push(item); //将item压入栈顶
s.pop(); //删除栈顶的元素,但不会返回
s.top(); //返回栈顶的元素,但不会删除
s.size(); //返回栈中元素的个数
s.empty(); //检查栈是否为空,如果为空返回true,否则返回false

//栈操作举例:
#include<iostream>
#include<stack>
#include<queue>
using namespace std;
 
void main()
{
    stack<int> s;
    int num;
 
    cout<<"------Test for Stack-------"<<endl;
    cout<<"Input number:"<<endl;
    
    while(cin>>num)
    {
        s.push(num);
    }
 
    cout<<"The Stack has "<<s.size()<<" numbers.They are:"<<endl;
    while(!s.empty())
    {
        cout<<s.top()<<" ";
        s.pop();
    }
    cout<<"\nNow the size is "<<s.size()<<endl;
    system("Pause");
}

结果截图:


2、队列(queue)说明及举例:

使用队列,要先包含头文件 : #include<queue>

定义队列,以如下形式实现: queue<Type> q; 其中Type为数据类型(如 int,float,char等)。

队列的主要操作:
q.push(item) //将item压入队列尾部
q.pop() //删除队首元素,但不返回
q.front() //返回队首元素,但不删除
q.back() //返回队尾元素,但不删除
q.size() //返回队列中元素的个数
q.empty() //检查队列是否为空,如果为空返回true,否则返回false

//队列操作举例
#include<iostream>
#include<stack>
#include<queue>
using namespace std;
 
void main()
{
    queue<int> q;
    int num;
 
    cout<<"------Test for Queue-------"<<endl;
    cout<<"Input number:"<<endl;
    while(cin>>num)
    {
        q.push(num);
    }
    cout<<"Now the Queue has "<<q.size()<<" numbers."<<endl;
    cout<<"The first is "<<q.front()<<endl;
    cout<<"The last is "<<q.back()<<endl;
    cout<<"All numbers:"<<endl;
    while(!q.empty())
    {
        cout<<q.front()<<" ";
        q.pop();
    }
    cout<<"Now the Queue has "<<q.size()<<" numbers."<<endl;
    system("Pause");
 
 
}

结果截图:


转载自:https://blog.csdn.net/livecoldsun/article/details/25011413

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本节我们将介绍 STL 中的 stack 和 queue 容器使用。 栈和队列都是极其重要的数据结构,C++ ST...
    思想永不平凡阅读 7,563评论 1 5
  • 栈 栈的英文单词是Stack,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入,...
    Jack921阅读 5,447评论 0 5
  • C++ 标准模板库(STL) 作者:AceTan,转载请标明出处! 0x00 何为STL## STL(Standa...
    AceTan阅读 10,426评论 3 44
  • 一、栈 1.1 栈的定义 栈(Stack):只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表,但是限定这...
    末雨潮声阅读 4,026评论 0 0
  • 一个小小的决定 影响了一条河流的成长 影响了白天和夜晚的温差 四季轮回 思念多了起来 海洋有了感恩的愿望 一个小小...
    大度章阅读 1,792评论 2 12

友情链接更多精彩内容