STL stack 和 queue

文章目录

  • 一、stack 类和 queue 类的模拟实现

在这里插入图片描述
在这里插入图片描述

stack 只允许在一端进行插入删除,是一个后进先出(LIFO)的结构,可以存储任意类型

queue 只允许在一端进行插入,另一端进行删除,是一个先进先出(FIFO)的结构,可以存储任意类型

模板参数 T 表示存储元素的类型,Container 表示底层使用的容器

一、stack 类和 queue 类的模拟实现

stack 类和 queue 类常用接口模拟实现:

//test.cpp
#include <iostream>
#include <stack>
#include <queue>
#include <vector>
#include <list>using namespace std;#include "stack.h"
#include "queue.h"int main()
{starrycat::test_stack();starrycat::test_queue();return 0;
}//stack.h
#pragma oncenamespace starrycat
{template<class T, class Container = vector<T>>class stack{public:void push(const T& x){_con.push_back(x);}void pop(){_con.pop_back();}const T& top() const{return _con.back();}bool empty() const{return _con.empty();}size_t size() const{return _con.size();}private:Container _con;};void test_stack(){//stack<int> s;stack<int, list<int>> s;s.push(1);s.push(2);s.push(3);s.push(4);while (!s.empty()){cout << s.top() << " ";s.pop();}cout << endl;}
}//queue.h
#pragma oncenamespace starrycat
{template<class T, class Container = list<T>>class queue{public:void push(const T& x){_con.push_back(x);}void pop(){_con.pop_front();}const T& front() const{return _con.front();}const T& back() const{return _con.back();}bool empty() const{return _con.empty();}size_t size() const{return _con.size();}private:Container _con;};void test_queue(){queue<int> q;q.push(1);q.push(2);q.push(3);q.push(4);while (!q.empty()){cout << q.front() << " ";q.pop();}cout << endl;}
}

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

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

相关文章

元服务那些事儿 | 挥剑解决隐私声明,激发开发豪情

话说元服务初上的年间&#xff0c;鸿蒙江湖高手云起&#xff0c;都是一顿键盘手猛敲&#xff0c;元服务推陈出新&#xff0c;创意层出不穷&#xff0c;无不风生水起。 江湖规矩&#xff1a;每个元服务必须提供规范的隐私声明&#xff0c;否则提交元服务发布上架后&#xff0c;将…

Flask+pyecharts结合,html统计图呈现在前端页面

是我,是你 在网上看到这样一段话: “很多时候,你必须接受这世界上突如其来的失去。洒了的牛奶,遗失的钱包,走散的爱人,断掉的友情。当你做什么都于事无补的时候,唯一能做的,就是让自己努力好过一点。” <

TCP协议报文,核心特性可靠的原因,超时重传详细介绍

目录 一、TCP协议 二、TCP核心特性的保障 三、保留的六位标志位对于应答报文的作用 四、如何处理丢包——超时重传的原理 五、超时重传的时间 一、TCP协议 每一行是四个字节&#xff0c;前面的20个字节是固定的&#xff08;TCP最短长度&#xff0c;20字节&#xff0c;选项…

PAT (Basic Level) Practice 1045~1066

PTA Basic Level Practice 解题思路和代码&#xff0c;主要用的是 C。每22题一篇博客&#xff0c;可以按目录来进行寻找。 文章目录 1045 快速排序1046 划拳1047 编程团体赛1048 数字加密1049 数列的片段和1050 螺旋矩阵1051 复数乘法1052 卖个萌1053 住房空置率1054 求平均值1…

拷贝构造函数(深拷贝+浅拷贝)

目录 拷贝构造函数浅拷贝深拷贝 拷贝构造函数 拷贝构造函数&#xff1a; Myclass(const Myclass& myclass) {amyclass.a;bmyclass.b;cmyclass.c; }浅拷贝 浅拷贝的思路就是和默认的拷贝构造函数一样: 即将原对象的值直接赋值给新对象&#xff0c;这样做一般情况下是没什…

Java“牵手”淘宝商品详情数据,淘宝商品详情接口,淘宝API接口申请指南介绍

采集场景 在淘宝首页&#xff08;taobao.com&#xff09;输入关键词搜索&#xff0c;采集搜索后得到的商品列表页数据然后再点击进去即是商品详情页面数据。示例中关键词为【新款连衣裙】&#xff0c;可根据需求进行更换&#xff0c;同时支持自动批量输入多个关键词&#xff0…

解读|美创深度参与5项电信和互联网行业数据安全标准发布实施

《数据安全法》、《个人信息保护法》等法律法规的颁布实施&#xff0c;坚持安全和发展并重的原则&#xff0c;积极应对复杂严峻的安全风险与挑战&#xff0c;加速构建数据安全保障体系&#xff0c;成为电信和互联网行业重要工作。 “安全发展、标准先行”&#xff0c;标准化工作…

力扣 -- 646. 最长数对链

参考代码&#xff1a; class Solution { public:int findLongestChain(vector<vector<int>>& pairs) {int npairs.size();sort(pairs.begin(),pairs.end());vector<int> dp(n,1);int ret1;for(int i1;i<n;i){for(int j0;j<i;j){if(pairs[j][1]<…

声音生成结果比较方法综述——FAD、JSD、NDB多种衡量参数

文章目录 引言正文Generation quality 生成质量FAD距离FAD论文总结FAD代码下载和安装FAD的使用 通过分类准确率衡量实现代码 Generation Deversity生成多样性NDBJSDNDB和JSD的实现代码代码修改和结果理解 NDB和JSD应用到声音生成 总结 引言 之前自己并没有对这方面的内容进行研…

【数据结构-堆】堆

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

异步FIFO设计的仿真与综合技术(2)

概述 本文主体翻译自C. E. Cummings and S. Design, “Simulation and Synthesis Techniques for Asynchronous FIFO Design 一文&#xff0c;添加了笔者的个人理解与注释&#xff0c;文中蓝色部分为笔者注或意译。前文链接&#xff1a;异步FIFO设计的仿真与综合技术&#xff0…

Java集合面试

文章目录 Java集合框架说说有哪些常见的集合&#xff1f;ArrayList和LinkedList的区别&#xff1f;List和Set的区别&#xff1f;HashMap的数据结构&#xff1f;把你了解的所有都讲一讲&#xff1f;数据结构&#xff1a; put流程Hashmap的resize方法的执行过程&#xff1f;get流…

【算法与数据结构】530、LeetCode二叉搜索树的最小绝对差

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;二叉搜索树的性质是左子树的所有节点键值小于中间节点键值&#xff0c;右子树的所有节点键值大于中间节…

招聘寒冬中,Python 程序员如何突出重围?

在当前的就业市场中&#xff0c;许多人都在感叹“招聘寒冬”。 尤其是对于 Python 程序员来说&#xff0c;似乎面临着更大的挑战。 然而&#xff0c;我要说的是&#xff0c;挑战与机遇并存&#xff0c;只要我们能够找准自己的定位&#xff0c;提升自己的技能&#xff0c;Pyth…

运用谷歌浏览器的开发者工具,模拟搜索引擎蜘蛛抓取网页

第一步&#xff1a;按压键盘上的F12键打开开发这工具&#xff0c;并点击右上角三个小黑点 第二步&#xff1a;选择More tools 第三步&#xff1a;选择Network conditions 第四步&#xff1a;找到User agent一列&#xff0c;取消复选框的勾选 第五步&#xff1a;选择谷歌爬虫…

Spring框架中的Resource接口是什么,以及它在加载和访问资源时的关键作用

文章目录 什么是 Resource 接口&#xff1f;使用 Resource 加载资源使用 Resource 访问文件系统资源总结 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 ✨收录专栏&#xff1a;Java框架 ✨文章内…

通过小程序实现微信扫码授权登录,网站接入微信扫码登录功能(永久免费)

需求 网站如果想要实现微信扫码登录其实有很多种方案&#xff0c;常见的方案就是微信开放平台和微信公众号服务号。前者是目前大部分网站并且是微信认可的一种方式&#xff0c;后者是开发者发现服务号具备扫码关注后即可获取用户基本信息的能力后而开发的一种方式。 而这两者…

【深入解析spring cloud gateway】08 Reactor 知识扫盲

一、响应式编程概述 1.1 背景知识 为了应对高并发服务器端开发场景&#xff0c;在2009 年&#xff0c;微软提出了一个更优雅地实现异步编程的方式——Reactive Programming&#xff0c;我们称之为响应式编程。随后&#xff0c;Netflix 和LightBend 公司提供了RxJava 和Akka S…

腾讯云centos7.6安装部署备忘

1.Mysql 1.1 安装mysql wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum install mysql-community-server 1.1.1 安装后重启 service mysqld restart 1.1.2 初次安装mysql&#xff0c;root账…

【Python】【Fintech】用Python和蒙特卡洛法预测投资组合未来收益

【背景】 想利用蒙特卡洛方法和yahoo,stooq等财经网站上的数据快速预测特定portfolio的收益。 【分析】 整个程序的功能包括 读取json中的portfolio组合创建蒙特卡洛模拟预测收益的算法创建从财经网站获得特定投资组合数据,并根据2的算法获得该Index或Portfolio收益预测结…