stack容器、queue容器(20221116)

news2025/1/15 20:51:51

一、stack容器

1、基本概念

先进后出的数据结构,只有一个出口(栈顶)。

栈不允许有遍历行为,可以判断是否为空(empty),也可以知道其元素个数(size)

2、常用接口

构造函数:

stack<T>stk; // stack采用模板类实现,stack对象的默认构造形式

stack(const stack &stk); //拷贝构造函数

赋值操作:等号操作符

数据存取:

push(elem); //向栈顶添加元素

pop();

top();//返回栈顶元素

大小操作:

empty(); //判断堆栈是否为空

size();//返回栈的大小

//栈容器

void test01()

{

    stack<int>stk;

    stk.push(10);

    stk.push(20);

    stk.push(30);

    stk.push(40);

    //只要栈不为空,则返回栈顶元素并执行出栈操作

    cout << "栈的元素个数:" << stk.size() << endl;//4

    while (!stk.empty())

    {

        cout << "栈顶元素:" << stk.top() << endl;

        stk.pop();

    }

    cout << "栈的元素个数:" << stk.size() << endl;//0

}

二、queue容器

1、基本概念

先进先出的容器,有两个出口;

允许从一端新增元素,另一端移除元素;

队列中只要队头和队尾才可以被外界使用,因此队列不允许有遍历行为;

入队push();出队pop();

2、常用接口

构造函数:

queue<T>q; // queue采用模板类实现,queue对象的默认构造形式

queue(const queue &q); //拷贝构造函数

赋值操作:等号操作符

数据存取:

push(elem); //向队尾添加元素

pop();

front();//返回队头元素

back();//返回队尾元素

大小操作:

empty(); //判断是否为空

size();//返回队列的大小

class Person {

public:

    string m_name;

    int m_score;

    Person(string name, int score)

    {

        this->m_name = name;

        this->m_score = score;

    }

};

//队列Queue

void test02()

{

    queue<Person>q;

    //准备数据

    Person p1("张三", 89);

    Person p2("张四", 90);

    Person p3("李五", 92);

    Person p4("王六", 93);

    Person p5("宋七", 99);



    q.push(p1);

    q.push(p2);

    q.push(p3);

    q.push(p4);

    q.push(p5);

    //只要队列不为空,则查看队头队尾元素

    cout << "队列的元素个数:" << q.size() << endl;//5

    while (!q.empty())

    {

        cout << "队头元素:  " << "姓名:"<<q.front().m_name << "分数:" << q.front().m_score<< endl;

        cout << "队尾元素:  " << "姓名:"<<q.back().m_name<< "分数:" << q.back().m_score<< endl;

        q.pop();

    }

    cout << "队列的元素个数:" << q.size() << endl;//0

}

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

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

相关文章

初始MySQL

目录 一、什么是数据库 二、SQL分类 三、库的操作 四、表的操作 五、数据类型 六、表的约束 什么是数据库 存储数据用文件就可以了&#xff0c;为什么还要有数据库&#xff1f; 文件保存数据有以下几个缺点&#xff1a; 文件的安全性问题文件不利于数据查询和管理 文件…

电脑视频怎么录制?好用的电脑录屏方法

在日常使用电脑的时候&#xff0c;很多小伙伴经常会遇到需要录制电脑视频的时候。但网上各种眼花缭乱的电脑录屏方法&#xff0c;很多小伙伴看了表示自己根本没有学会。今天就给大家分享2个简单好用的电脑录屏方法&#xff0c;看完后轻松掌握电脑录屏。 一&#xff0e;使用Wind…

主成分分析法在图像压缩和重建中的应用研究-含Matlab代码

目录一、引言二、主成分分析法概念及性质2.1 概念2.2 性质三、计算步骤3.1 计算相关系数矩阵3.2 计算特征值与特征向量3.3 计算主成分贡献率及累计贡献率3.4 计算主成分载荷3.5 各主成分的得分四、图像压缩与重建实验分析五、参考文献六、Matlab代码获取一、引言 主成分分析法…

【附源码】Python计算机毕业设计网上购物平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

最火后台管理系统 RuoYi 项目探秘,之二

上篇中&#xff0c;我们初步观察了 RuoYi 的项目结构&#xff0c;并在最后实际运行起了项目。我们也发现了作者不好的代码习惯&#xff0c;作为反例&#xff0c;我们应该要养成良好的编码习惯。本篇开始&#xff0c;我们会按照 Web 界面逐一对具体子项目的实现的功能进行探秘。…

Qt使用7z压缩和解压示例(支持文件夹递归、多文件不同位置)

1&#xff0c;简介 Qt自带的压缩处理类功能不太完善&#xff0c;也不支持中文路径。 这是我封装好的一个Qt调用7z处理压缩解压的工具类 ZipAPI&#xff0c;提供了几个简单易用的接口。 写压缩解压代码从此非常方便快捷&#xff01; 支持中文路径&#xff0c;支持常规的压缩解…

Cell:水平基因转移在昆虫中广泛存在,增强鳞翅目雄性昆虫求偶行为

期刊&#xff1a;Cell 影响因子&#xff1a;66.85 发表时间&#xff1a;2022年8月 一、研究背景 昆虫起源于约4.8亿年前&#xff0c;是地球上最繁盛的动物类群&#xff0c;已被描述种超过100万&#xff0c;占所有动物物种50%以上。这个古老的动物类群在…

插画、插图网站,免费(商用)

本期分享5个高质量插画网站&#xff0c;免费可商用&#xff0c;设计必备&#xff0c;建议收藏&#xff01;1、Undraw https://undraw.co/illustrationsUndraw是一个扁平风格插画图库&#xff0c;里面有大量的插画&#xff0c;可以支持在线更改配色&#xff0c;网站提供免费下载…

【JavaSE】类和对象(下)(访问限定符 包的概念 导入包中的类 自定义包 包的访问权限控制举例 常见的包 实例内部类 静态内部类 局部内部类 对象的打印)

文章目录六、 封装6.1 封装的概念6.2 访问限定符6.3 封装扩展之包6.3.1 包的概念6.3.2 导入包中的类6.3.3 自定义包6.3.4 包的访问权限控制举例6.3.5 常见的包七、内部类7.1 内部类7.1.1 实例内部类7.1.2 静态内部类7.2 局部内部类7.3 匿名内部类八、对象的打印六、 封装 6.1 …

人工智能-线性回归2--房价预测、欠拟合过拟合、正则化、模型保存加载

7&#xff0c;案例&#xff1a;波士顿房价预测 回归性能评估MSE from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression,SGDRegressor from sklearn.meyrics import mean_squa…

详解PHP解决swoole守护进程Redis假死 ,mysql断线重连问题

详解PHP解决swoole守护进程Redis假死 &#xff0c;mysql断线重连问题最近公司有个项目&#xff0c;要举办一个线上活动&#xff0c;我这边负责提供接口记录用户访问记录&#xff0c;与操作记录&#xff0c;由于活动参与人数可能比较多&#xff0c;为了不影响正常业务运行&#…

安全性归约(游戏)

文章目录基于游戏的安全性定义归约中的概率关系某事件发生某事件不发生互斥事件基于游戏的安全性定义 在将攻击 Γ\GammaΓ 的算法 A′AA′ 归约到攻击 Π\PiΠ 的算法 AAA 时&#xff0c; 让 A′AA′ 根据 ChΓCh_\GammaChΓ​ 提供的信息&#xff0c;为 AAA 模拟出同分布的 …

股票自动下单接口够接入多种股票数据源吗?

很多的股票交易接口在原先只能接入行情的CTP程序&#xff0c;那么股票自动下单接口现在可以通过openctp提供的CTPAPI&#xff0c;可以接入到多种多样的股票数据源&#xff01;但是目前由于大多的股票交易接口是受到监管限制的就很难接入实盘&#xff0c;那么股票自动下单接口通…

知心世界姐王瑞平:谷传民与大衣哥朱之文是沟通问题不是人品问题

大衣哥和谷传民的官司走到现在&#xff0c;互联网上面也出现了两大阵营对垒&#xff0c;一方面是大衣哥的粉丝&#xff0c;旗帜鲜明地支持自己的偶像&#xff0c;另一大阵营的人&#xff0c;则一心一意支持谷传民。虽然每个阵营都有自己的道理&#xff0c;但是毕竟都太过极端&a…

Virtual Data Augmentation: 虚拟数据扩增技术

听说过数据扩增&#xff08;Data Augmentation&#xff09;&#xff0c;也听说过虚拟对抗训练&#xff08;Virtual Adversarial Traning&#xff09;&#xff0c;但是我没想到会有人将其结合&#xff0c;谓之虚拟数据扩增&#xff08;Virtual Data Augmentation&#xff09;。这…

CANoe诊断测试

诊断协议那些事儿 本文为诊断协议那些事儿专栏文章&#xff0c;当我们在开发工程中越来越多的需要使用到总线测试工具&#xff0c;其中包括BUSMASTER、周立功、PCAN、CANOE等&#xff0c;本文将使用德国Vector公司的CANoe介绍诊断测试的基本环境。 文章目录诊断协议那些事儿一…

Python编程从入门到实践 第五章:if语句 练习答案记录

Python编程从入门到实践 第五章&#xff1a;if语句 练习答案记录 练习题导航Python编程从入门到实践 第五章&#xff1a;if语句 练习答案记录5.1 一个简单示例5.2 条件测试5.2.1 检查是否相等5.2.2 检查是否相等时忽略大小写5.2.3 检查是否不相等5.2.4 数值比较5.2.5 检查多个文…

运行yolov5 v6遇到的问题

1. Arial.ttf无法在运行时下载的问题 可以选择用浏览器下载&#xff0c;然后拷贝到docker或者ubuntu下&#xff0c;创建服务器的http访问方式。 具体为&#xff1a; 1.1 下载文件 Arial.ttf 并拷贝到docker或者ubuntu下 1.2 在ubuntu下创建http访问方式&#xff1a; # 安装…

有限元仿真分析误差来源之边界条件,约束和point mass

导读&#xff1a;前不久&#xff0c;我在这里分享了一篇《有限元仿真分析误差来源之材料参数设置&#xff0c;小心为妙》的文章&#xff0c;引发了同行们的关注和讨论。在此感谢仿真秀平台讲师们的批评和指正&#xff0c;一起认真交流技术和进步。今天我将继续带来关于边界条件…

spring data jpa在mysql分页中的实例(一次访问同时获取数据和总数)

一、原生sql语句 mysql中语句如下 select SQL_CALC_FOUND_ROWS sn,max(count) as active_count from sn_state_changed where sn_year zz group by sn limit 0,10; select FOUND_ROWS() as total; 解释&#xff1a; SQL_CALC_FOUND_ROWS 供后面的查询总数sql语句使…