stack和queue(一)

news2024/11/15 10:34:12

接下来讲解一些stack栈和queue的简单使用

stack的概念

stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行 元素的插入与提取操作。  特性是先进先出  后进后出

构造一个栈堆   

int main()
{
	deque<int> mydeque(3, 100);          // deque with 3 elements
	vector<int> myvector(2, 200);        // vector with 2 elements

	stack<int> first;                    // 构造空栈
	stack<int> second(mydeque);         // 拷贝deque内容

	stack<int, vector<int> > third;  // 使用vector容器的空栈
	stack<int, vector<int> > fourth(myvector);//使用拷贝vector容器的栈

	cout << "size of first: " << first.size() << '\n';
	cout << "size of second: " << second.size() << '\n';
	cout << "size of third: " << third.size() << '\n';
	cout << "size of fourth: " << fourth.size() << '\n';

	r

empty是stack的成员函数 用于检测当前stack是否为空  返回布尔值 若为空返回真  不为空返回假

这里的empty常常用与出栈遍历时作为while循环结束的条件来使用

返回stack中元素的个数

	cout << "size of first: " << first.size() << '\n';
	cout << "size of second: " << second.size() << '\n';
	cout << "size of third: " << third.size() << '\n';
	cout << "size of fourth: " << fourth.size() << '\n';

返回栈顶元素的引用

将stack中尾部的元素弹出

top和pop常常在遍历栈时配合完成出栈和打印操作

将元素val压入stack中

接下来建立一个栈并且完成栈的遍历

int main()
{
	stack<int> s;
	s.push(1);
	s.push(10);
	s.push(12);
	s.push(14);
	s.push(15);
	s.push(16);
	s.push(18);
	s.push(19);
	while (!s.empty())
	{
		int a = s.top();
		cout << a << " ";
		s.pop();
	}
	cout << endl;
	return  0;
}

接下来讲解一下queue队列的简单使用

队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端 提取元素。  队列的特性是先进先出

构造容器适配器对象

测试用例

int main()
{
	deque<int> mydeck(3, 100);        
	list<int> mylist(2, 200);        

	queue<int> first;                 //创建一个空队列
	queue<int> second(mydeck);       //拷贝mydeck容器内容

	queue<int,list<int> > third; //创建一个使用list容器的空队列
	queue<int, list<int> > fourth(mylist);//创建一个使用list容器的队列并且将mylist的内容拷贝使用

	cout << "size of first: " << first.size() << endl;
	cout << "size of second: " << second.size() << endl;
	cout << "size of third: " << third.size() << endl;
	cout << "size of fourth: " << fourth.size() << endl;

	return 0;
}

检测队列是否为空,是返回true,否则返回false

返回队列中有效元素的个数

返回队头元素的引用

返回队尾元素的引用

在队尾将元素val入队列

将队头元素出队列

接下来创建一个简单的队列并对其进行遍历

int main()
{
	queue<int> q;
	q.push(1);
	q.push(21);
	q.push(31);
	q.push(41);
	q.push(51);
	q.push(61);
	q.push(71);

	while (!q.empty())
	{
		int a = q.front();
		cout << a << " ";
		q.pop();

	}
	cout << endl;
	return 0;
}

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

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

相关文章

树莓派配置Qt+OpenCV

本次教程使用的树莓派镜像&#xff1a;树莓派镜像带图像界面下载 Qt的安装&#xff1a; 在命令行依次输入以下命令安装Qt&#xff1a; sudo apt-get updatesudo apt-get upgrade sudo apt-get install qtbase5-dev qtchooser sudo apt-get install qt5-qmake qtbase5-dev-t…

threejs加载高度图渲染点云,不支持tiff

问题点 使用的point来渲染高度图点云&#xff0c;大数据图片无效渲染点多&#xff08;可以通过八叉树过滤掉无效点增加效率&#xff0c;这个太复杂&#xff09;&#xff0c;但是胜在简单能用 效果图 code 代码可运行&#xff0c;无需npm <!DOCTYPE html> <html la…

MySQL聚合统计和内置函数

【数据库】MySQL聚合统计 王笃笃-CSDN博客https://blog.csdn.net/wangduduniubi?typeblog显示平均工资低于2000的部门和它的平均工资 mysql> select deptno,avg(sal) deptavg from emp group by deptno; --------------------- | deptno | deptavg | --------------…

0x08 MotionEye 视频监控组件 list 信息泄漏洞 CVE-2022-25568

参考&#xff1a; MotionEye 视频监控组件 list 信息泄漏洞 CVE-2022-25568 | PeiQi文库 (wgpsec.org) 一、漏洞描述&#xff1a; motionEye是用Python写的motion的Web前端&#xff0c;它可以监视视频信号并检测运动。它可以与多种类型的摄像机配合使用,也可以与电影文件一起…

PMP--二模--解题--41-50

文章目录 11.风险管理--风险代表对将来问题的预判&#xff0c;问题代表对过去问题事件的跟踪&#xff1b;两者联系&#xff1a;风险发生后会变成问题&#xff0c;而问题可能导致新的风险。41、 [单选] 在项目会议期间&#xff0c;一个团队发现三个月前关闭的问题仍然处于活跃状…

解决 Prettier ESLint 错误

解决 Prettier ESLint 错误 在 Vue.js 项目中使用 ESLint 和 Prettier 时&#xff0c;你可能会遇到类似以下的错误&#xff1a; frontend\src\views\dashboard\MobileConfigPanel.vue1:25 error Delete ␍ …

使用IDA Pro动态调试Android APP

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 关于 android_server android_server 是 IDA Pro 在 Android 设备上运行的一个调试服务器。 通过在 Android 设备上运行android_server&#xff0c;IDA Pro …

SpringBoot项目同时集成Mybatis和Mybatis-plus框架

1. 背景 Mybatis-plus可以生成CRUD&#xff0c;减少开发中SQL编写量&#xff0c;但是某些情况下我们需要多表关联查询&#xff0c;这时候Mybatis可以手写SQL的优势就体现出来了&#xff0c;在实际开发中&#xff0c;项目里面一般都是Mybatis和Mybatis-Plus公用&#xff0c;但是…

【Geoserver使用】Geoserver 3前瞻

文章目录 前言一、GeoServer 3 Call for Crowdfunding&#xff08;GeoServer 3 呼吁众筹&#xff09;二、Geoserver 3升级内容1.升级到3的几个原因2.Geoserver 3的四个升级方向 总结 前言 今天来看看最近Geoserver官方发布的关于Geoserver 3重大升级众筹这篇官方博客中提到的几…

漫步者头戴式耳机怎么样?漫步者、西圣、索尼三大耳机测评对比

自头戴式耳机诞生以来&#xff0c;凭借其出色的音质表现和时尚造型&#xff0c;迅速赢得了音乐爱好者的青睐。头戴式耳机不仅能够带来更加沉浸的听觉体验&#xff0c;还具备较强的降噪功能&#xff0c;让用户在嘈杂环境中依然能专注于音乐世界。 与入耳式耳机相比&#xff0c;…

【PyVista】网状结构,标和单元[mesh,point,cell]的介绍

[PyVista] 介绍-CSDN博客中介绍给pyvista的介绍和简单的使用。接下来看看mesh的使用。 一&#xff0c;什么是网格? 在PyVista中&#xff0c;网格是任何空间引用信息&#xff0c;通常由三维空间中的表面或体积的几何表示组成。我们通常将任何空间引用的数据集称为网格&#xf…

回归预测 | Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量回归预测

回归预测 | Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量回归预测 目录 回归预测 | Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量…

【java】常见限流算法原理及应用

目录 前言 限流的作用 4种常见限流算法 固定窗口限流 基本原理 简单实现 优点和缺点 滑动窗口限流 基本原理 简单实现 优点和缺点 漏桶限流 基本原理 简单实现 优点和缺点 令牌桶限流 基本原理 简单实现 优点和缺点 算法比较与选择 前言 在现代分布式系统…

102.SAPUI5 sap.ndc.BarcodeScannerButton调用摄像头时,localhost访问正常,使用IP访问失败

目录 原因 解决办法 1.修改谷歌浏览器的setting 2.在tomcat中配置https访问 参考 使用SAPUI5的sap.ndc.BarcodeScannerButton调用摄像头时&#xff0c;localhost访问正常&#xff0c;使用IP访问时&#xff0c;一直打不开摄像头&#xff0c;提示getUserMedia()问题。 原因…

【React】(推荐项目)一个用 React 构建的 CRUD 应用程序

推荐项目&#xff1a;CRUD 应用示例 在本篇文章中&#xff0c;我想向大家推荐一个非常实用的项目&#xff1a;CRUD 应用示例。这个项目展示了如何使用现代技术栈创建一个基础的增删改查&#xff08;CRUD&#xff09;应用&#xff0c;非常适合用于学习和实践后端开发技能。 适…

【工具变量】科技金融试点城市DID数据集(2000-2023年)

时间跨度&#xff1a;2000-2023年数据范围&#xff1a;286个地级市包含指标&#xff1a; year city treat post DID&#xff08;treat*post&#xff09; 样例数据&#xff1a; 包含内容&#xff1a; 全部内容下载链接&#xff1a; 参考文献-pdf格式&#xff1a;https://…

Navicat连接SQLServer报错

一、Navicat连接SQLServer报错 1.1、问题描述 由于项目原因&#xff0c;需要使用SQLServer作为数据源。Navicat中新建SQLServer的连接&#xff0c;填写完必要信息后连接失败&#xff0c;报错原因如下&#xff1a; 1.2、Navicat的版本 1.3、解决方法 第一步&#xff1a;下载【s…

工厂模式,策略模式,代理模式,单例模式在项目中的应用

项目背景&#xff1a; 首先这篇文章是总结了OJ项目和AI答题平台项目&#xff08;和一点点的聚合搜索项目&#xff09;中设计模式的文章 在项目中也用了很多次的设计模式&#xff0c;我感觉起来&#xff0c;这些设计模式的作用就是提高项目的扩展性和降低耦合性 工厂模式&…

Gitlab学习(007 gitlab项目操作)

尚硅谷2024最新Git企业实战教程&#xff0c;全方位学习git与gitlab 总时长 5:42:00 共40P 此文章包含第25p-第p26的内容 文章目录 推送项目到gitlabidea安装gitlab插件配置免密登录推送项目到远程库 在gitlab上创建项目额外功能的使用推送分支到远程库标记功能创建合并请求 推…

leetcode刷题(71-75)

算法是码农的基本功&#xff0c;也是各个大厂必考察的重点&#xff0c;让我们一起坚持写题吧。 遇事不决&#xff0c;可问春风&#xff0c;春风不语&#xff0c;即是本心。 我们在我们能力范围内&#xff0c;做好我们该做的事&#xff0c;然后相信一切都事最好的安排就可以啦…