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

C++ stack 和 queue

什么是 stack(栈)?

想象一下你有一把ak,你给ak上膛子弹,最后上膛的子弹先发射出去。这种“后进先出”的结构就是

常用操作:
  • push(x):把元素 x 压入栈顶。
  • pop():移除栈顶元素(但不返回值)。
  • top():查看栈顶元素的值。
  • empty():判断栈是否为空。
  • size():返回栈中元素个数。
    #include <iostream>
    #include <stack>
    using namespace std;int main() {stack<int> s;s.push(10);s.push(20);s.push(30);cout << s.top() << endl; // 输出: 30s.pop();cout << s.top() << endl; // 输出: 20return 0;
    }
    什么是 queue(队列)?

    想象你在排队买奶茶,新来的人要排在队尾,而服务员从队首开始服务。这种“先进先出”的结构就是队列

    常用操作:
  • push(x):把元素 x 加入队尾。
  • pop():移除队首元素。
  • front():查看队首元素。
  • back():查看队尾元素。
  • empty() 和 size():和 stack 一样。
    #include <iostream>
    #include <queue>
    using namespace std;int main() {queue<string> q;q.push("Alice");q.push("Bob");q.push("Charlie");cout << q.front() << endl; // 输出: Aliceq.pop();cout << q.front() << endl; // 输出: Bobreturn 0;
    }
    总结对比
    操作stack(栈)queue(队列)
    添加元素push(x)push(x)
    删除元素pop()(栈顶)pop()(队首)
    查看元素top()front() / back()
    顺序后进先出先进先出
  • 使用场景
  • stack:括号匹配、函数调用栈、撤销操作
  • queue:任务调度、BFS(广度优先搜索)、打印任务队列
  • 记住头文件:#include <stack> 和 #include <queue>
  • pop() 只删除,不返回值,要用 top() 或 front() 先看值。
  • 别忘了检查 empty(),否则访问空容器会出错!
http://www.dtcms.com/a/503538.html

相关文章:

  • 洛谷 P1035:[NOIP 2002 普及组] 级数求和 ← double
  • C程序中的大规模程序设计:从模块化到抽象数据类型
  • 响应式网站高度如何计算seo自动点击排名
  • 企业网站引导页模板江西门户网站建设
  • Prim 算法和 Kruskal 算法应用场景
  • 雷电模拟器环境配置
  • 南沙移动网站建设中元建设集团网站
  • 公司网站百度推广wordpress没中文插件
  • 手写Spring第7弹:Spring IoC容器深度解析:XML配置的完整指南
  • java的异常体系
  • pybullet
  • Filebeat、ELK安装与数据同步
  • 嵌入式开发学习日志40——stm32之I2C协议层
  • 网站建设公司小江可以做试题的网站
  • Android 四大组件桥梁 —— Intent (意图) 详解
  • 小鱼在线网站建设网站注册步骤
  • wordpress 视频站模板wordpress和网盘结合
  • Orleans流背压控制机制深度分析
  • Java并发之队列同步器AQS原理
  • c++11可变模版参数 emplace接口 新的类功能 lambda 包装器
  • 手机代码网站有哪些问题吗制作视频特效
  • 济南正规的网站制作郑州做网站九零后网络
  • SQL入门:分页查询核心技术解析
  • 5.3 TCP (答案见原书 P252)
  • 教育房地产 网站建设中山网站建设找丁生
  • 【第十八周】自然语言处理的学习笔记03
  • 探索 Python 判断语句:逻辑与感性的交汇
  • 深圳哪家制作网站好成都近期发生的大事
  • IDEA Gradle并行编译内存溢出问题
  • 如何做电影网站赚钱瓯海住房与城乡建设局网站