• 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怎么使用
    其实学到这里了 这些使用方式应该一眼就能看明白了 不过为了博客整体的工整萌新还是写下了这篇文章
    如果这篇文章帮助到了你 别忘记一键三连啊
    阿尼亚 哇酷哇酷!

  • 相关阅读:
    Java CC 解析 SQL 语法示例
    ncurses库意外失联引发的思考
    2台三菱plc FX5u能否实现无线数据交互?
    基于java+ssm教学质量评价系统(学生评教)-计算机毕业设计
    HTML基本骨架与编辑器选择
    宣布 .NET MAUI 支持 .NET 7 Release Candidate 2
    CentOS 7实现类似于Kali Linux中的自动补全功能
    金融科技赋能 互融云手机回租系统 实现资产全流程在线运营管理
    力扣leetcode 1608. 特殊数组的特征值
    机器人自适应控制
  • 原文地址:https://blog.csdn.net/meihaoshy/article/details/127922006