C++容器之栈(std::stack)

目录

  • 1 概述
  • 2 使用实例
  • 3 接口使用
    • 3.1 construct
    • 3.2 empty
    • 3.3 size
    • 3.4 top
    • 3.5 push
    • 3.6 emplace
    • 3.7 pop
    • 3.8 swap

1 概述

  堆栈是一种容器适配器,专门设计用于在后进先出(后进先出)环境中操作,其中元素仅从容器的一端插入和提取。
  堆栈被实现为容器适配器,容器适配器是使用特定容器类的封装对象作为其底层容器的类,提供一组特定的成员函数来访问其元素。元素是从特定容器的“后部”推/弹出的,即堆栈的顶部。
底层容器可以是任何标准容器类模板或某些其他专门设计的容器类。集装箱应支持以下操作:

  • empty 是否为空
  • size 栈大小
  • back 栈顶元素
  • push_back 入栈
  • pop_back 出栈

  标准容器类vector、deque和list满足这些要求。默认情况下,如果没有为特定堆栈类实例化指定容器类,则使用标准容器deque。
其类图如下:
类图

2 使用实例

void StackSuite::push()
{std::stack<int> a;a.push(10);TEST_ASSERT_EQUALS(10, a.top())a.push(20);TEST_ASSERT_EQUALS(20, a.top())a.push(30);TEST_ASSERT_EQUALS(30, a.top())
}
void StackSuite::pop()
{std::stack<int> a(std::deque<int>({ 10, 20, 30 }));TEST_ASSERT_EQUALS(30, a.top())a.pop();TEST_ASSERT_EQUALS(20, a.top())a.pop();TEST_ASSERT_EQUALS(10, a.top())if

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下半年开考,仅考1次,系统集成项目管理工程师考试安排!

《系统集成项目管理工程师教程》第3版官方教材将在下半年开始使用&#xff0c;相对于之前的版本&#xff0c;变化很大。新老考生都需要重新学习。历年真题显示&#xff0c;官方教材非常重要&#xff0c;考试题目大部分都可以在教材中找到原文。因此&#xff0c;对于下半年的考试…

Go 实现 WebSocket 的双向通信

在Go语言中实现WebSocket的双向通信通常需要使用第三方库&#xff0c;其中 gorilla/websocket 是一个非常流行和广泛使用的库。 1、安装 go get github.com/gorilla/websocket 2、编写WebSocket服务器代码 package mainimport ("fmt""github.com/gorilla/we…

【C++】构造函数、析构函数、拷贝构造与运算符重载

文章目录 1.类的六个默认构造函数2.构造函数2.1特性2.1.1 函数名与类名相同2.1.2. 无返回值&#xff08;不能写void&#xff09;2.1.3. 对象实例化时编译器自动调用对应的构造函数2.1.4 构造函数可以重载2.1.5编译器生成默认的构造函数2.1.6编译器生成的默认构造有何用&#xf…

linux开发之设备树写法

设备树的根节点 设备树子节点和子子节点,子节点在根节点范围内 包含子节点以及子子节点 节点名称 比如这里led就是这个gpio的小名,可以直接用 gpio22020101是这里的名字,也就是要用这个gpio,符号后面的一串数字使用了这个gpio的寄存器地址,因为可能会用很多gpio,所以加入寄存…

游戏开发与软件开发的区别

游戏开发和软件开发作为两个重要的领域&#xff0c;分别吸引了大量的开发者和用户。尽管这两者在许多方面存在共通之处&#xff0c;但它们在目标、开发过程、技术需求和团队结构上都有显著的区别。本文将详细探讨游戏开发与软件开发的不同之处。 目标与用户体验 游戏开发的主…

如何测试大型语言模型

围绕使用AI助手来减少手动工作、通过代码生成器提高软件开发者的生产力&#xff0c;以及利用生成式AI进行创新&#xff0c;这些话题一直为公众所热议。同时&#xff0c;商业机会正推动许多开发团队构建知识库、使用向量数据库&#xff0c;并在其应用中嵌入大型语言模型&#xf…

console.log——NPM库

前期回顾 Vue3 TS 项目实战 - 后台管理系统 - 按钮权限_vue3ts后台管理-CSDN博客 目录 &#x1f6a9;不使用NPM插件的方式 第一步&#xff1a;创建log函数-源码 第二步&#xff1a;注册到window上 第三步&#xff1a;扩展Window接口 第四步&#xff1a;确保类型文件…

CMake是怎么找到Qt相关模块的

当我们使用QT创建了一个CMake项目后&#xff0c;我们尝试使用CMake编译时&#xff0c;会遇到找不到Qt的模块的问题&#xff0c; find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets WebSockets WebEngineWidgets) 复制代码 深入了解find_package之后&#xff0c;我们就…

南卡、韶音、Cleer开放式耳机如何选?全面对比测评拒绝智商税!

随着开放式耳机在生活中日益流行&#xff0c;市场上的多样化选择有时也伴随着质量参差不齐的问题&#xff0c;部分产品因成本控制而牺牲了材质和音质&#xff0c;给消费者在寻找高质量耳机时增添了困扰。 作为一名耳机评测领域的从业者&#xff0c;近期我投入大量精力对多款开…

Softing线上研讨会 | 使用Softing smartLink SW-HT将AB PLC下的HART设备连接到艾默生AMS设备管理器

| (免费) 线上研讨会时间&#xff1a;2024年6月25日 14:00~14:45 / 22:30~23:15 艾默生AMS设备管理器凭借其全面功能、优秀诊断能力、兼容性以及远程监控和管理功能&#xff0c;在过程工业中被证明是一款先进的工厂资产管理工具&#xff0c;可用于设备配置、诊断和监控、仪表校…

2023年信息素养大赛小学组C++智能算法复赛真题

今天给大家分享2023年全国青少年信息素养大赛小学组C智能算法挑战赛复赛里面的一套真题&#xff0c;希望有助于大家了解复赛的难度及备考。 其他真题下载&#xff1a;网盘-真题-信息素养大赛

富格林:阻挠欺诈套路需要明辨

富格林认为&#xff0c;现货交易平台的重要性对投资者们来说众所周知&#xff0c;但操作的软件也同样重要。投资者在选好平台后&#xff0c;还需要下载软件来进行交易。富格林提醒&#xff0c;正规操作可以阻挠欺诈被骗&#xff0c;投资者应慎重选择操作软件。下面富格林将给投…

MongoDB 原子操作:确保数据一致性和完整性的关键

在 MongoDB 中&#xff0c;原子操作是指可以一次性、不可分割地执行的数据库操作。这些操作能够保证在多个并发操作中不会出现数据不一致或者丢失的情况&#xff0c;确保数据库的数据完整性和一致性。 基本语法 MongoDB 的原子操作通常与更新操作相关&#xff0c;其基本语法如…

clocking wizard IP核通过AXI4-Lite接口实现动态重新配置应用实例

在最近的FPGA应用中&#xff0c;应用到了基于Zynq 7000的Uart串口设计&#xff0c;为了让串口的时钟更精确&#xff0c;采用了外部时钟模式&#xff0c;如下图所示。外部时钟连接到了Clocking Wizard IP核的输出端。 在串口通信时&#xff0c;发现串口有错码出现。例如&#xf…

triton之paged attention

一 原理 图解大模型计算加速系列之&#xff1a;vLLM核心技术PagedAttention原理 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/691038809 二 源码分析 1 测试参数设置 test_paged_attention(num_seqs32,num_heads(64, 64),head_size64,block_size16,dtypetorch.float16,…

C语言知识大纲

一、基础 (一)变量定义和使用 (二)数据类型的字节数 (三)变量转换 (四)程序主要结构 (五)if和else判断 (六)switch判断 (七)while循环 (八)do while循环 (九)for循环 (十)基本输入输出 (十一)数组定义和使用 (十二)函数定义和使用 (十三)指针 (十四)多级指针 (十…

奇门遁甲古籍1《奇门秘术》(双页版)PDF电子书

《奇门秘术》 全书共102页 时间有限&#xff0c;仅上传部分图片&#xff0c;结缘私&#xff01;

数据结构—队列(C语言实现)

文章目录 前言一、队列的概念二、队列的实现Queue.hQueue.c 三、设计循环队列问题数组实现链表实现 总结 前言 嗨喽喽&#xff01;&#xff01;小伙伴们&#xff0c;大家好哇&#xff0c;欢迎来到我的博客&#xff01; 今天将要分享的是另一种数据结构—队列&#xff0c;以及…

Transformer详解(5)-编码器

Transformer编码器 import copy import torch from torch import nn from norm import Norm from multi_head_attention import MultiHeadAttention from feed_forward import FeedForward from pos_encoder import PositionalEncoderdef get_clones(module, N):""&…

低空经济蓬勃发展

我国低空经济蓄势起飞从2021年2月首次将“低空经济”写入国家规划&#xff0c;到2023年12月正式将低空经济定位为战略性新兴产业&#xff0c;国家层面鼓励并积极推动低空经济发展。今年政府工作报告提出&#xff0c;积极打造生物制造、商业航天、低空经济等新增长引擎。截至3月…