C++ stack用法

2023-11-01

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();
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ stack用法 的相关文章

随机推荐

  • 【脚本语言系列】关于Python统计分析statsmodel,你需要知道的事

    如何使用statsmodel 安装statsmodel 使用easy install或pip安装statsmodels easy install U statsmodels pip install U statsmodels 使用源代码安装
  • cocos2dx之Lua调用C++

    现在cocos2dx3 8自己封装了以前的toLua 比以前更好用了 先来看一下整体步骤 1 编写一个 ini文件 2 修改genbindings py脚本 3 执行genbindings py脚本 4 将生成的桥接文件加入工程 5 修改l
  • stream(流) iterator之一个例子

    The following two simple programs sort all strings read from the standard input and print them without duplicates by usi
  • Typora的简单入门使用教程

    安装篇 https typora io 下拉到最底处下载 下载完之后安装 一路next 使用篇 新建一个文本文档 将后缀名改为md 打开 注意 如果新建一个文本文档的后缀名被隐藏 可执行如下步骤以显示后缀名 1 使用快捷键windows e
  • Java兔子生兔子问题(递归法)

    Java兔子生兔子问题 递归法 该问题与上楼梯的问题一样 是从反方向思考推导递归公式 生兔子问题 问题描述 新诞生的兔子三个月后会每个月都会产小兔子 即 1 1 2 3 5 8 13 time 2022 05 19 param args p
  • 再谈 eBay 的扩展性最佳实践

    再谈 eBay 的扩展性最佳实践 网址 http www dbanotes net arch best practices for scaling websites lessons from ebay html 很多人都觉得 eBay 在
  • python图片风格迁移毕设_Python简单实现图像风格迁移

    下载W3Cschool手机App 0基础随时随地学编程导语 T T之前似乎发过类似的文章 那时候是用Keras实现的 现在用的PyTorch 而且那时候发的内容感觉有些水 于是我决定 好吧我确实只是为了写点PyTorch练手然后顺便过来水一
  • Spring Boot 配置定时任务

    本文目录 引言 1 注解的使用 2 cron 表达式介绍 各字段含义 特殊字符代表含义 常用 cron 表达式介绍 引言 项目开发中经常需要执行一些定时任务 比如 需要在每天凌晨时候 分析一次前一天的日志信息 Spring为我们提供了异步执
  • D - Dragon Balls Kattis - dragonballs

    题目链接 题意 交互题 就是提问系统不超过1000次然后找到n颗龙珠 但龙珠是1颗1颗找到的并不是1次全部找到 这样就很简单了 每次循环输出1个 0 0 然后找到与远点相聚为d的所有的点 然后在分别提问 直至系统输出0为止 题问是用cout
  • Qt槽函数识别发送的信号

    Qt是通过信号和槽的机制进行事件传递的 当有多个不同类型 或相同类型的物件的发送信号都通过一个槽来处理的时候 需要在槽中识别出这些信号然后做相应的处理 例如 在一个界面中有16个按钮 QPushButton 和4个 QRadioButton
  • [STM32系列]二、实现STM32 GPIO端口状态实现最大速度翻转

    STM32系列 二 实现STM32 GPIO最快速度翻转 文章目录 STM32系列 二 实现STM32 GPIO最快速度翻转 前言 一 实验准备 二 测试 1 C语言翻转测试 2 汇编翻转测试 总结 前言 在STM32F103系列应用过程中
  • TimeLine的使用

    TimeLine是什么 TimeLine是Unity的影视制作工具 该工具可以创建项目内部用到的动画过场部分 包括动作动画 声音 脚本 物体移动范围 粒子系统等 该工具不需要使用任何代码控制 TimeLine的使用 TimeLine编辑器可
  • JVM系列之故障排查与性能调优(重点)

    1 故障排查与性能调优 1 1 概述 1 1 1 生产环境中的问题 生产环境发生了OOM 该如何处理 如何判断是否是内存泄漏导致的 生产环境应该给Java进程分配多少内存 生产环境应该如何选择垃圾收集器 生产环境如何设置JVM参数 如何对垃
  • windows installer服务坏了修复方法

    昨天 经过一轮破解window 2003server后 因为是盗版的所以打不了sp2补丁 老是说密钥无效 后来还得多谢朋友的帮助 改了注册后 就可以成功的打上了sp2补丁 然后装上正版的SqlServer 2005 装着装着突然安装界面不见
  • php-cgi.exe系统错误 无法启动程序,因为计算机中丢失api-ms-win-crt-conio-l1-1-0.dll 解决此问题

    下载地址 http www jb51 net dll api ms win crt conio l1 1 0 dll html download 安装 gt 解压 gt 获得dll文件 如下 解决此问题 1 Windows 95 98 Me
  • QGIS+PyUIC+PyQt5 ImportError: DLL load failed 解决方法

    软件环境 QGIS下载地址 https qgis org downloads https qgis org downloads QGIS OSGeo4W 3 16 5 1 Setup x86 64 exe PyCharm下载地址 https
  • IDEA使用Maven创建SpingMVC项目

    IDEA使用Maven创建SpingMVC项目 1 新建Maven Project 并且选择webapp原型 然后next 2 这里的GroupId和ArtifactID随意填写 但是ArtifactID最好和你的项目一名一致 然后next
  • 二分 AcWing 790. 数的三次方根

    二分 AcWing 790 数的三次方根 原题链接 AcWing 790 数的三次方根 算法标签 二分 代码 include
  • Multisim 14.0安装包+详细安装步骤

    Multisim是美国国家仪器 NI 有限公司推出的以Windows为基础的仿真工具 适用于板级的模拟 数字电路板的设计工作 它包含了电路原理图的图形输入 电路硬件描述语言输入方式 具有丰富的仿真分析能力 安装步骤 1 选择下载的软件压缩包
  • C++ stack用法

    C 库以提供 模板 为主 所谓模板 是指不必预先制定类型的函数或类 我们可以借助STL 标准模板库 Standard Template Library STL 提供的高效算法来管理数据 为应对多种需求 STL为用户提供了多种名为容器 Con