C++库以提供“模板”为主。所谓模板,是指不必预先制定类型的函数或类。我们可以借助STL(标准模板库 Standard Template Library, STL)提供的高效算法来管理数据。为应对多种需求,STL为用户提供了多种名为容器(Container)的类,用于管理数据集合。在创建动态数组、表、栈、队列等数据结构时,我们只需要定义对应的容器,然后调用相应成员函数或算法即可。

stack成员函数示例

  • size( ) :返回栈中元素个数
  • top( ) :返回栈顶的元素
  • pop( ) :从栈中取出并删除元素
  • push(e) :向栈中添加元素e
  • empty( ) :栈为空时返回true

示例训练

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

分析

应用一个辅助栈,主栈A用来保存实际数据,辅栈B用来保存最小元素。压栈的时候,如果元素比B的栈顶小,则将该元素同时压入A栈和B栈,否则只压A栈;出栈的时候,若A栈顶元素等于B栈顶元素,则同时出栈,否则A出栈B不出栈。

class Solution {
public:stack<int> stack1,stack2;void push(int value) {stack1.push(value);if(stack2.empty())stack2.push(value);else{if(value < stack2.top())stack2.push(value);}}void pop() {if(stack1.top() == stack2.top()){stack2.pop();}stack1.pop();}int top() {return stack1.top();}int min() {return stack2.top();}
};

C++ stack用法相关推荐

  1. boost::lockfree::stack用法的测试程序

    boost::lockfree::stack用法的测试程序 实现功能 C++实现代码 实现功能 boost::lockfree::stack用法的测试程序 C++实现代码 #include <b ...

  2. c++ stack用法详解

    c++ set用法详解 c++ stack用法详解 stack stack常用操作 例题 stack 栈是基本的数据结构之一,特点是先进后出,就如开进死胡同的车队,先进去的只能最后出来. 在c++ 中 ...

  3. python代码大全和用法用量_Python numpy.stack()用法及代码示例

    numpy.stack()函数用于沿新轴连接相同尺寸数组的序列.axis参数指定结果轴尺寸中新轴的索引.例如,如果axis = 0,它将是第一个尺寸:如果axis = -1,它将是最后的尺寸. 用法: ...

  4. c++ stack用法 入门必看 超详细

    1.stack的作用 stack是一个比较简单易用的数据结构,其最大的特性就是先进后出.就好比一个桶,先放进出的数据就在底部,如果想要取出就先要把上面的数据取出,现在不懂没关系,看完本文就可以理解了. ...

  5. C++(STL):24 ---序列式容器stack用法

    1.stack的定义 要使用stack,应先添加头文件#include <stack>, 并在头文件下面加上 "using namespace std" //定义 st ...

  6. python的stack用法_Python numpy.stack函数方法的使用

    numpy.stack numpy.stack(arrays, axis=0, out=None)      [source] 沿着新的轴连接数组序列. axis参数在结果的维度中指定新轴的索引.例如 ...

  7. c++中stack用法( 算法竞赛入门)

    文章目录 1. stack介绍 2. stack对象构造方法(定义方法与其它容器相同,typename可以是任意基本数据类型或容器) 3. stack容器内的常用函数 4.stack的常见用途 1. ...

  8. c++ stl栈容器stack用法介绍

    stack堆栈容器 堆栈是一个线性表,插入和删除只在表的一端进行.这一端称为栈顶(Stack Top),另一端则为栈底(Stack Bottom).堆栈的元素插入称为入栈,元素的删除称为出栈.由于元素 ...

  9. 容器适配器之stack用法总结

    容器适配器是一个封装了序列容器的类模板,它在一般序列容器的基础上提供了一些不同的功能.之所以称作适配器类,是因为它可以通过适配容器现有的接口来提供不同的功能. stack容器适配器中的数据是以 LIF ...

  10. cqueue结构pop_c++ stl栈容器stack的pop(),push()等用法介绍及头文件

    C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,--也就是说实现了一个先进后出(FILO)的数据结构. c++ stl栈stack的头文件为: #include c++ ...

最新文章

  1. SAP 动态安全库存设置
  2. MongoDB 分页查询的方法及性能
  3. Delphi常见的运行期Access Violation错误分析
  4. 使用Eclipse构建Maven的SpringMVC项目
  5. C# 进程Process基本的操作说明
  6. Java单例的常见形式
  7. 信息学奥赛一本通(1128:图像模糊处理)
  8. PGpool 编译出错
  9. python assertion failed_PyCharm报错与解决方法一览
  10. C++头文件中定义全局变量在多次引用时出现变量多次定义符号冲突的解决办法...
  11. python3 datatime,python3处理时间和日期:datetime模块 – Python3教程
  12. Spark API 之 cogroup 使用
  13. 最近在校园内发现暴风一号病毒(俗称1kb病毒),普及一下查杀和修复的方法
  14. 组态王与DLT645-2007电能表通讯调试总结
  15. 在Win10 系统中安装VS 2008
  16. Object 转int
  17. E45: 'readonly' option is set (add ! to override)
  18. 【Linux】粘包问题
  19. 位运算的奇技淫巧:Bit Twiddling Hacks
  20. 红警ol服务器维护,红警OL基地升级条件汇总 腾讯红警OL手游基地升级表

热门文章

  1. Mac 利用 Chrome 下载所有网页上的视频
  2. RxJS 6 —— operators
  3. 自己封装的swing框架,能够快速写出一个页面(带Tab、菜单)
  4. linux 学习 个人总结笔录(五)
  5. ios键盘done中文_IOS_总结IOS中隐藏软键盘的三种方式,一、使用软键盘的 Done 键隐藏 - phpStudy...
  6. 安装Win 8.1 跳过输入密钥步骤
  7. 网络故障排除的4款软件
  8. WPF老矣,尚能饭否——且说说WPF今生未来(下):安心
  9. 还停留在图片识别?谷歌已经开始研究视频识别了
  10. 谷歌浏览器开启JavaScript