堆栈是数据结构里最早接触的,在STL里有直接对应的stack结构,在学数据结构的时候偷懒就直接使用STL里的标准函数

stack的特点在于先进后出,忽略具体的代码实现,在使用时一定要注意到这一点,对堆栈的操作都是在堆栈的顶上进行的,也就是说如果想对堆栈中早进入的元素进行操作就必须把堵在堆栈上面的元素排出去,打个比方,这有一摞书,你想取出下面的某一本,就要把上面的书搬走再拿这本书,堆栈就是这个特点。

头文件:#include< stack >
声明: stack < 存储的数据类型> 堆栈名
常用的函数操作:
① empty() 判断堆栈是否为空
② pop() 删除最顶上的元素(栈顶元素),这个操作是没有返回值的,只删除
③ push()将元素放入栈顶
④ size() 返回堆栈中元素的个数
⑤ top() 返回栈顶元素,这个操作只返回,并不会对元素进行什么操作,需要配合pop操作

基于这五个常用操作,可以实现对堆栈的不同操作,由于堆栈并不能像向量那样进行数组式的操作,所以就只能遍历来访问每个元素,一般采用下面这种方式

while(!q.empty)
{cout<<q.top()<<endl;q.pop();
}

在求后缀表达式这类题目时会用到堆栈,大体的解题思路为:从头读,读到数就入栈,读到非结束字符时就出栈两个数字进行操作,之后将结果入栈,循环直到读到结束字符

具体的函数实现过程详见数据结构课本吧

STL常用函数总结-stack相关推荐

  1. C++STL常用函数

      C++的STL提供给我们很多方便的操作,可以从C语言中一些繁琐的操作中解放出来.这篇文章就简要总结一下STL中常用的及其各自的常用函数.内容涉及:stack,queue,vector,string ...

  2. STL常用函数总结-queue+priority_queue

    队列也是STL里面常用的一个容器,名字十分形象,所谓队列,就是排队,早来早走,队列的特点就是这样,先入先出 头文件:#include< queue > 初始化: queue< 存储元 ...

  3. STL常用函数总结-vector

    vector可以看作数组的增强版,可以用类似数组的直接取得方式存取,也可以使用函数操作,好处是可以不用提前规定长度,可以实现不定长度的存储. 需要的头文件:#include < vector & ...

  4. STL常用函数总结-set

    set是STL里面的集合,和数学上的集合一样,set中的元素具有唯一性,而且系统能够根据元素的值自动进行排序.但是set中数元素的值并不能直接被改变. 需要的头文件:#include< set ...

  5. STL常用函数总结-map

    map是STL里面另外一个很方便的容器,它能够实现一种对应,其实数组也是一种对应,是一种数字与数字或者数字与字符的对应,第几个位置上放了某个字符或者数字,而map则是对这种对应的进一步扩展,它提供一对 ...

  6. 【大爱】C++STL 常用 函数 用法(转载自duoduo3_69)

    迭代器(iterator) 个人理解就是把所有和迭代有关的东西给抽象出来的,不管是数组的下标,指针,for里面的.list里面的.vector里面的,抽象一下变成了iterator 1 #includ ...

  7. C++STL 常用 函数 用法

    http://www.cnblogs.com/duoduo369/archive/2012/04/12/2439118.html

  8. 【C++提高编程笔记】三.(一).STL常用容器之string容器

    文章目录 1.string基本概念 2.string构造函数 3.string赋值操作 4.string字符串拼接 5.string查找和替换 6.string字符串比较 7.string字符存取 8 ...

  9. C++STL中string的头文件中的常用函数

    文章目录 STL简介 头文件 初始化操作 实现效果 基本函数 1.size,length,capacity 2.resize,reserve 1,2的实现代码 实现效果 3.at,append,ins ...

最新文章

  1. 【直播】鱼佬:数据挖掘师之路(河北高校数据挖掘邀请赛)
  2. SQL函数设计——临时表的使用
  3. html选择一个元素,css3选择第n个元素
  4. java编写类骑士游历_java课程设计骑士游历程序的开发
  5. 新概念英语(1-137)A pleasant dream
  6. 个人代码库の全局快捷键
  7. java ee api_Java EE安全性API向前发展
  8. java生产者消费者代码_Java实现Kafka生产者消费者代码实例
  9. UI控件Telerik UI for WinForms发布R1 2019|附下载
  10. cad快捷键文件路径_办公格式转太难不会看这里!CAD、PDF、Word、Excel、TXT教你玩转...
  11. hdu3530Subsequence【单调队列优化dp】2010多校联合
  12. 自动化登陆博客园脚本
  13. LeetCode-144-Binary Tree Preorder Traversal
  14. DDL、DML、TCL
  15. Ubuntu系统设置静态IP
  16. HTML5 + Canvas + 广度优先搜索(BFS) 编写lol连连看
  17. poj3281 Dining (最大流)
  18. 《花开半夏》--9 远去
  19. 挂耳式耳机品牌排行榜,看看谁被推荐上榜
  20. 提高钢材品质应用 高精度在线测径仪

热门文章

  1. 数据驱动测试之——CSV+TestNG
  2. Knockout.js 初探
  3. WindowsXP 下搭建PHP环境(笔记)
  4. ADO.NET 如何读取 Excel (下)
  5. frp源码剖析-frp中的log模块
  6. angular 定时函数
  7. sql server内置存储过程、查看系统信息
  8. GitHub和Microsoft TFS对比有什么优势
  9. IE10、IE11解决不能播放Flash的问题!
  10. SELinux系列(十二)安全上下文的修改和设置(chcon和restorecon命令)