• C++初阶 Stack和Queue的介绍和使用


    作者:@小萌新
    专栏:@C++初阶
    作者简介:大二学生 希望能和大家一起进步
    本篇博客介绍:本篇博客会简单的介绍STL中的栈和队列
    在这里插入图片描述

    本章目标

    1. 复习下栈这种数据结构特点
    2. 知道怎么使用STL中的栈
    3. 复习下队列这种数据结构的特点
    4. 知道怎么使用STL中的队列

    Stack 栈

    栈的特点

    栈是一个先进先出的数据结构 它的数据从头部插入 从头部删除

    一般来说栈是使用顺序表来实现的

    在这里插入图片描述

    如果说你对于栈这种数据结构还不熟悉或者说根本没学过的话 可以参考下萌新

    的这篇博客

    初阶数据结构栈

    STL中的stack

    定义

    在STL中有两种使用方式

    1. 直接指定类型使用
      像这样子
       stack<int> st1;
    
    • 1
    1. 指定适配器实现栈
      像这样子
    	stack<int, vector<int>> st2;
    	stack<int, list<int>> st3;
    
    • 1
    • 2

    这里的适配器是什么意思呢?

    实际上就是指定了我们在底层使用哪种方式实现栈

    比如说

    stack<int, vector<int>> st2;
    
    • 1

    这就是指定了我们在底层使用vector实现stack

    使用

    在这里插入图片描述

    这里的这些在经历了string vector list之后是不是就轻车熟路了啊

    所以下面我们直接用一段遍历将上面重要的函数全部用一边就可以

    代码和显示效果如下

    int main()
    {
    	stack<int> st1;
    	//stack> st2;
    	//stack> st3;
    	st1.push(1);
    	st1.push(2);
    	st1.push(3);
    	st1.push(4);
    	st1.push(5);
    
    	while (!st1.empty())
    	{
    		cout << st1.top() << " ";
    		st1.pop();
    	}
    	cout << endl;
    
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在这里插入图片描述

    队列 Queue

    队列的特点

    队列是一种经典的尾插头出的数据结构 类似下图

    在这里插入图片描述
    如果说你对于队列这种数据结构还不熟悉或者说根本没学过的话 可以参考下萌新

    的这篇博客

    初阶数据结构队列

    STL中的queue

    定义

    定义方式和栈一眼 同样有两种

    方式一:

      queue<int> q1;
    
    • 1

    方式二:

    指定适配器定义

    代码表示如下

    	queue<int,vector<int>> q2;
    	queue<int,list<int>> q3;
    
    • 1
    • 2

    使用

    在这里插入图片描述
    还是一眼 我们使用一段代码来实现上面大部分重要的内容

    代码和演示效果图如下

    int main()
    {
    	queue<int> q1;
    	queue<int,vector<int>> q2;
    	queue<int,list<int>> q3;
    
    
    	q1.push(1);
    	q1.push(2);
    	q1.push(3);
    	q1.push(4);
    	q1.push(5);
    
    	while (!q1.empty())
    	{
    		cout << q1.front() << " ";
    		q1.pop();
    	}
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在这里插入图片描述

    总结

    在这里插入图片描述

    stack和queue是两种容器适配器 大体与我们之前学的数据结构类似

    本篇博客介绍了STL库中stack和queue怎么使用
    其实学到这里了 这些使用方式应该一眼就能看明白了 不过为了博客整体的工整萌新还是写下了这篇文章
    如果这篇文章帮助到了你 别忘记一键三连啊
    阿尼亚 哇酷哇酷!

  • 相关阅读:
    mysql常见面试题
    Redis 先写数据库及先写缓存一致性问题
    【云原生专题】基于Docker+Neo4j图数据库搭建企业级分布式应用拓扑图
    在vue-cli项目中打包的 dist 静态文件不能直接双击打开访问解决方法-直接打开访问是空白的解决方法
    MySQL表的操作
    解决kaldi报错:error while loading shared libraries: libfstscript.so.10:
    微信小程序 uniapp+vue餐厅美食就餐推荐系统
    C进阶--数据的存储
    测试所需文档
    ros 常用是命令
  • 原文地址:https://blog.csdn.net/meihaoshy/article/details/127922006