数据结构:STL:queue stack

目录

1.queue的头文件

2.queue的定义

3.queue的常用函数

3.1 push()

3.2 pop()

3.3 size()

3.4 empty()

3.5 front()

3.6 back()

4.stack的头文件

5.stack的定义

6.stack的常用函数

6.1 push()

 6.2 top()

6.3 pop()

6.4 size()

6.6 empty()


     STLf封装的queue也是十分的强大,一个queue不但可以实现队列,还可以实现循环队列。、

1.queue的头文件

#include<queue>

2.queue的定义

    queue的定义和vector没什么不同

queue<类型名>变量名;

    类型可以是int,double等基本数据类型,也可以是自定义的结构体,也可以是STL容器。

queue<int>q;
queue<double>q;
queue<char>q;
queue<char,list<char>>q;

3.queue的常用函数

3.1 push()

     push()在队尾插入一个元素

queue<int>q;
q.push(1);
q.push(2);
cout<<q.front()<<endl;

     输出:

1

3.2 pop()

    pop()删除队首元素

qqueue<int>q;
q.push(1);
q.push(2);
q.pop();
cout<<q.front()<<endl;

     输出:

2 //1已经被删除掉

3.3 size()

     size()返回队列中元素个数

1
0
queue<int>q;
q.push(1);
q.push(2);
cout<<q.size()<<endl;

     输出:

2

3.4 empty()

     empty()判断队列是否为空,如果队列为空返回true

queue<int>q;
cout<<q.empty()<<endl;
q.push(1);
q.push(2);
cout<<q.empty()<<endl;

      输出:

1
0

3.5 front()

    front()返回队首元素

queue<int>q;
q.push(1);
q.push(2);
q.push(3);
cout<<q.front()<<endl;
q.pop();
cout<<q.front()<<endl;

     输出:

1
2

3.6 back()

     back()返回队尾元素

queue<int>q;
q.push(1);
q.push(2);
cout<<q.back()<<endl;

    输出:

2

4.stack的头文件

#include<stack>

5.stack的定义

stack<类型名>变量名;

       类型可以是int,double等基本数据类型,也可以是自定义的结构体,也可以是STL容器。

6.stack的常用函数

6.1 push()

    push()将元素压入栈中

stack<int>st;
st.push(1);
st.push(2);

 6.2 top()

     因为栈是一种先进后出的数据结构,我们只能访问栈顶元素

stack<int>st;
st.push(1);
st.push(2);
cout<<st.top()<<endl;

    输出:

2

6.3 pop()

     pop()用来弹出栈顶元素

stack<int>st;
st.push(1);
st.push(2);
cout<<st.top()<<endl;
st.pop();
cout<<st.top()<<endl;

     输出:

2
1

6.4 size()

    size()返回栈中元素个数

stack<int>st;
st.push(1);
st.push(2);
st.push(3);
cout<<st.size()<<endl;

     输出:

3

6.6 empty()

    empty()用来判断栈是否为空,为空返回1,表示true;不为空返回0,表示false

stack<int>st;
cout<<st.empty()<<endl;
st.push(1);
st.push(2);
cout<<st.empty()<<endl;

    输出:

1
0

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

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

相关文章

集合基础知识点

集合基础 1. 集合的由来 当 Java 程序中需要存放数据的时候&#xff0c;通常会定义变量来实现数据的存储&#xff0c;但是&#xff0c;当需要存储大量数据的时候该怎么办呢&#xff1f;这时首先想到的是数组&#xff0c;但是&#xff01;数组只能存放同一类型的数据&#xff…

16 Linux 内核定时器

一、Linux 时间管理和内核定时器简介 1. 内核时间管理简介 Linux 内核中有大量的函数需要时间管理&#xff0c;比如周期性的调度程序、延时程序、定时器等。 硬件定时器提供时钟源&#xff0c;时钟源的频率可以设置&#xff0c;设置好以后就周期性的产生定时中断&#xff0c;系…

连续学习(Continual Learning)或者增量学习的场景中,multiband和replay分别是什么?起到什么作用

multiband和replay是两种不同的训练策略&#xff0c;通常用在处理连续学习或者增量学习的场景中。这些策略旨在解决新知识学习导致旧知识遗忘的问题&#xff0c;即所谓的灾难性遗忘。以下是multiband和replay两种策略的基本区别&#xff1a; Multiband: 定义: multiband通常是…

C语言编译器(C语言编程软件)完全攻略(第十六部分:Dev C++下载地址和安装教程(图解))

介绍常用C语言编译器的安装、配置和使用。 十六、Dev C下载地址和安装教程&#xff08;图解&#xff09; Dev C是一款免费开源的 C/C IDE&#xff0c;内嵌GCC编译器&#xff08;GCC 编译器的 Windows 移植版&#xff09;&#xff0c;是 NOI、NOIP 等比赛的指定工具。Dev C 的…

Spring中的数据校验

文章目录 引言摘要正文基于 ValidationUtils的简单校验基于自定义 Validator的校验Spring内置校验 LocalValidatorFactoryBeanHibernateValidator校验使用HibernateValidator自定义校验规则 总结 引言 我们在日常的软件开发过程中&#xff0c;尤其是WEB开发过程中&#xff0c;…

读算法霸权笔记12_数据科学

1. 公平与公正 1.1. 公平大多数时候只是副产品 1.2. 由贪婪或偏见导致的不公正一直发生在我们身边 1.2.1. 如果承认法律面前人人平等&#xff0c;或者作为选民的大众应该被平等对待&#xff0c;我们就不能允许模型把我们分为不同的群体进行区别对待 1.3. 对于数学模型来说&…

YOLOv5:指定类别进行评估验证

YOLOv5&#xff1a;指定类别进行评估验证 前言前提条件相关介绍实验环境YOLOv5&#xff1a;指定类别进行评估验证代码实现进行验证没有指定的结果指定类别的结果 前言 由于本人水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。更多精彩内容&#xff0c;可点击进入P…

STM32学习笔记二十:WS2812制作像素游戏屏-飞行射击游戏(10)探索游戏平衡

游戏平衡很重要&#xff0c;然而&#xff0c;却往往得不到开发者的重视。或者&#xff0c;没有花时间仔细去做调整。 做过游戏开发的&#xff0c;都听说过一个词叫“数值爆炸”&#xff0c;实际上就是平衡没做好。 怎么样才能算是平衡呢&#xff1f; 玩家投入游戏的有两个&a…

农业银行RPA实践 3大典型案例分析

零接触开放金融服务在疫情之下被越来越多的银行和客户所认同&#xff0c;引起了更广泛的持续关注&#xff0c;各家银行纷纷开展产品服务创新&#xff0c;加速渠道迁移&#xff0c;同时通过远程办公、构建金融生态等方式积极推进零接触开放金融体系建设。 随着商业银行科技力量的…

Ansible的安装及简单使用

## Ansible的安装及简单使用 ## 一.Ubuntu安装Ansible sudo apt update sudo apt install ansible #使用以下命令检查安装是否成功&#xff1a; ansible --version二.配置Ansible #进入配置文件目录 cd /etc/ansible/ ls#文件含义 ansible.cfg #ansible配置文件,默认基本不用…

scratch绘制小正方形 2023年12月中国电子学会图形化编程 少儿编程 scratch编程等级考试四级真题和答案解析

目录 scratch绘制小正方形 一、题目要求 1、准备工作 2、功能实现 二、案例分析

紫光展锐5G扬帆出海 | 欧洲积极拥抱更多5G选择

和我国一样&#xff0c;欧洲不少国家也在2019年进入5G商用元年&#xff1a;英国在2019年5月推出了5G商用服务&#xff0c;该国最大的移动运营商EE(Everything Everywhere)最先商用5G&#xff1b;德国在2019年年中推出5G商用服务&#xff0c;德国电信、沃达丰和 Telefonica是首批…

Hive实战:分科汇总求月考平均分

文章目录 一、实战概述二、提出任务三、完成任务&#xff08;一&#xff09;准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录 &#xff08;二&#xff09;实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、创建分区的学生成绩表4、按分区加载数据5、查看分区…

nginx rewrite重写URL地址, laravel路由404问题

前言 在开发项目时&#xff0c;我面临一个需求&#xff1a;区分移动端和桌面端访问路径。移动端访问应在路径前加上/m/&#xff0c;而桌面端则不需要。例如&#xff1a; 移动端: 域名/m/路由地址桌面端: 域名/路由地址 这种设计在路由规则上带来了一定的重复&#xff0c;因为…

[C#]使用OpenCvSharp实现二维码图像增强超分辨率

【官方框架地址】 github.com/shimat/opencvsharp 【算法介绍】 借助于opencv自带sr.prototxt和sr.caffemodel实现对二维码图像增强 【效果展示】 【实现部分代码】 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin…

【机器学习】循环神经网络(一)

一、网络结构 RNN 处理输入序列时的信息流。 粗体箭头为各时间点信息流的活跃路径&#xff0c;虚线箭头显示当时不活动的连接。 一个简单RNN例子 RNN 不是一类网络&#xff0c;而是适用于不同问题的拓扑结构的集合。循环网络的一个有趣的方面是&#xff0c;有了足够的层和节点&…

export命令详解

export命令详解 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们一同深入了解 Linux 和 Unix 系统中的一个强大命令——export&#xff0c;并…

PC+Wap仿土巴兔装修报价器源码 PHP源码

核心功能&#xff1a; 业主自助预算计算&#xff1a;通过简洁的界面&#xff0c;业主可以输入装修需求&#xff0c;系统自动进行预算计算信息自动收集&#xff1a;系统自动收集业主的基本信息&#xff0c;如姓名、联系方式、房屋面积等一键发送报价&#xff1a;业主完成预算计…

GnuTLS recv error (-110): The TLS connection was non-properly terminated.

bug 解决方案&#xff1a;参考 GnuTLS recv error (-110): The TLS connection was non-properly terminated. 解决方案&#xff1a; apt-get install gnutls-bin git config --global http.sslVerify false git config --global http.postBuffer 1048576000参考

【SpringCloud】7、Spring Cloud Gateway限流配置

1、限流介绍 Spring Cloud Gateway 的限流配置主要涉及到令牌桶算法的实现。令牌桶算法可以对某一时间窗口内的请求数进行限制,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机。 在 Spring Cloud Gateway 中,官方提供了 RequestRateLimiterGatewayFi…