当前位置: 首页 > news >正文

STL——stack容器和queue容器详解

 

目录

💡stack

💡基本概念

常用接口

 💡queue

💡基本概念

💡常用接口



💡stack

💡基本概念

栈(stack):一种特殊的线性表,其只允许在固定的一端进行插入和删除操作。在进行数据插入和删除的一端称为栈顶,另一端称为栈低。栈中的元素都遵循后进先出的原则(LIFO,Last In First Out)。

压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。

出栈:栈的删除操作叫做出栈。出数据也在栈顶。


生活中栈的例子:

常用接口

功能描述:

  • 栈容器常用的对外接口

构造函数:

  • stack<T> stk;      //stack采用模板类实现, stack对象的默认构造形式
  • stack(const stack &stk);     //拷贝构造函数

赋值操作:

  • stack& operator=(const stack &stk);        //重载等号操作符

数据存取:

  • push(elem);        //向栈顶添加元素
  • pop();          //从栈顶移除第一个元素
  • top();          //返回栈顶元素

大小操作:
empty();         //判断堆栈是否为空
size();          //返回栈的大小

	stack<int>st;//入栈st.push(10);st.push(20);st.push(30);st.push(40);//栈顶cout << "size=" << st.size() << endl;while (!st.empty()){cout << st.top() << endl;st.pop();}cout << "size="<<st.size() << endl;

 💡queue

💡基本概念

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out)

入队列:进行插入操作的一端称为队尾

出队列:进行删除操作的一端称为队头

💡常用接口

功能描述: 栈容器常用的对外接口

构造函数:

  • queue<T> que;        //queue采用模板类实现,queue对象的默认构造形式
  • queue(const queue &que);        //拷贝构造函数

赋值操作:

  • queue& operator=(const queue &que);        //重载等号操作符

数据存取:

  • push(elem);        //往队尾添加元素
  • pop();        //从队头移除第一个元素
  • back();        //返回最后一个元素
  • front();        //返回第一个元素

大小操作:

  • empty();        //判断堆栈是否为空
  • size();        //返回栈的大小
    queue<int>q;q.push(10);q.push(20);q.push(30);q.push(40);cout << q.front() << endl;//队头元素cout << q.back() << endl;//队尾元素cout <<"size= "<< q.size() << endl;//大小//先进先出while (!q.empty()){cout << q.front() << endl;q.pop();}cout <<"size= "<< q.size() << endl;


 

http://www.lryc.cn/news/278977.html

相关文章:

  • django websocket实现聊天室功能
  • 软件测评中心▏性能测试之压力测试、负载测试的区别和联系简析
  • Go 语言 panic 和 recover 详解
  • NAND Separate Command Address (SCA) 接口数据传输解读
  • 彻底认识Unity ui设计中Space - Overlay、Screen Space - Camera和World Space三种模式
  • 档案数字化怎样快速整理资料
  • 面试算法100:三角形中最小路径之和
  • androj studio安装及运行源码
  • 【Web】token机制
  • JVM 11 调优指南:如何进行JVM调优,JVM调优参数
  • 横版动作闯关游戏:幽灵之歌 GHOST SONG 中文版
  • 【C++】:C++中的STL序列式容器vector源码剖析
  • final
  • 【AI】ObjectCenteredSensing
  • 一阶低通滤波器
  • 【排序算法】插入排序与希尔排序,你不想知道为什么希尔比插入更快吗?
  • Unity中向量的点乘、叉乘区别和作用以及经典案例
  • (26)Linux 进程通信之共享内存(共享储存空间)
  • 体感游戏开发体感互动游戏
  • vulnhub靶场之DC-5
  • 为什么选择CRM系统时,在线演示很重要?
  • 专业实习day3、4(路由器做内网访问公网)
  • H264码流进行RTP包封装
  • 基于多智能体点对点转换的分布式模型预测控制
  • 性能分析与调优: Linux 实现 缺页剖析与火焰图
  • 代码随想录算法训练营第17天 | 110.平衡二叉树 + 257. 二叉树的所有路径 + 404.左叶子之和
  • ubuntu20.04网络问题以及解决方案
  • Java面试题(java高级面试题)
  • 【MIdjourney】关于图像中人物视角的关键词
  • 433. 最小基因变化(Queue使用ArrayList和LinkedList进行声明)