C++模拟实现queue
C++模拟实现queue
- 1.queue的基本概念
- 2.queue的基本框架
- 3.size()成员函数
- 4.empty()成员函数
- 5.push()成员函数
- 6.pop()成员函数
- 7.front()成员函数
- 8.back()成员函数
- 9.完整代码
🌟🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【C++的学习】
📝📝本篇内容:queue的基本概念;queue的基本框架;size()成员函数;empty()成员函数;push()成员函数;pop()成员函数;front()成员函数;back()成员函数;完整代码
⬆⬆⬆⬆上一篇:C++模拟实现stack
💖💖作者简介:轩情吖,请多多指教(> •̀֊•́ ) ̖́-
1.queue的基本概念
queue是一个容器适配器,它底层是修改其他容器的接口,形成另一种风貌。queue就是我们常说的数据结构队列,它具有先进先出的特性,我们可以只能对它的两端进行操作,是一个双向开口的数据结构,并且queue不允许遍历
2.queue的基本框架
#define _CRT_SECURE_NO_WARNINGS 1
#pragma once
#include <iostream>
#include <deque>
using namespace std;
namespace lnb
{
//既然是模拟实现,我们默认的Container也可以是list,可以更好的理解,deque是库中默认的template<class T, class Container = deque<T>>class stack{public:private://修改其他容器的接口,形成另一种风貌:容器适配器Container _con;};
}
可以先去看一下list的模拟实现,这样就可以很好的理解后面的内容了
3.size()成员函数
//有效元素个数size_t size(){return _con.size();}
直接使用其他容器的接口即可
4.empty()成员函数
//判空bool empty(){return _con.empty();}
5.push()成员函数
//入队void push(const T& val){_con.push_back(val);}
6.pop()成员函数
//出队void pop(){_con.pop_front();}
7.front()成员函数
//队首元素T& front(){return _con.front();}//针对const对象const T& front()const{return _con.front();}
8.back()成员函数
//队尾的元素T& back(){return _con.back();}//针对const对象const T& back()const{return _con.back();}
9.完整代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <deque>
using namespace std;
namespace lnb
{
//既然是模拟实现,我们默认的Container也可以是list,可以更好的理解,deque是库中默认的template<class T,class Container=deque<T>>class queue{public://有效元素个数size_t size(){return _con.size();}//判空bool empty(){return _con.empty();}//入队void push(const T& val){_con.push_back(val);}//出队void pop(){_con.pop_front();}//队首元素T& front(){return _con.front();}//针对const对象const T& front()const{return _con.front();}//队尾的元素T& back(){return _con.back();}//针对const对象const T& back()const{return _con.back();}private://修改其他容器的接口,形成另一种风貌:容器适配器Container _con;};}
其实queue的模拟实现和stack一样简单,只需要调用别的容器的接口即可,压根没有难度~
🌸🌸C++模拟实现queue的知识大概就讲到这里啦,博主后续会继续更新更多C++的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪
相关文章:
C++模拟实现queue
C模拟实现queue 1.queue的基本概念2.queue的基本框架3.size()成员函数4.empty()成员函数5.push()成员函数6.pop()成员函数7.front()成员函数8.back()成员函数9.完整代码 🌟🌟hello,各位读者大大们你们好呀🌟🌟 &#x…...
【2025小年源码免费送】
💖学习知识需费心, 📕整理归纳更费神。 🎉源码免费人人喜, 🔥码农福利等你领! 💖山高路远坑又深, 📕大军纵横任驰奔, 🎉谁敢横刀立马行…...
PyQt5 超详细入门级教程上篇
PyQt5 超详细入门级教程 上篇:1-3部分:PyQt5基础与常用控件 第1部分:初识 PyQt5 和安装 1.1 什么是 PyQt5? PyQt5 是 Python 的图形用户界面 (GUI) 框架,它基于强大的 Qt 库。Qt 是一个跨平台的 C 框架,用…...
qiankun+vite+vue3
基座与子应用代码示例 本示例中,基座为Vue3,子应用也是Vue3,由于qiankun不支持Vite构建的项目,这里还要引入 vite-plugin-qiankun 插件 基座(主应用) 加载qiankun依赖 npm i qiankun -S qiankun配置(src/qiankun) src/qiankun/config.ts export default {subApp…...
【数据结构】顺序队列与链式队列
顺序队列与链式队列 1.队列的基本概念1.顺序存储的队列:循环队列3.链式存储的队列:链式队列 1.队列的基本概念 队列是一种逻辑结构,是一种特殊的线性表 只能在固定的两端操作线性表 只要满足上述条件,那么这种特殊的线性表就会…...
Cursor的详细使用指南
以下是一份关于 Cursor 的详细使用指南: 一、安装与设置 下载与安装: 首先,访问 Cursor 的官方网站,根据你的操作系统(Windows、Mac 或 Linux)下载相应的安装程序。运行安装程序,按照屏幕上的提…...
2025美赛数学建模B题思路+模型+代码+论文
2025美赛数学建模A题B题C题D题E题思路模型代码(1.24第一时间更新,更新见文末名片) 论文数学建模感想 纪念逝去的大学数学建模:两次校赛,两次国赛,两次美赛,一次电工杯。从大一下学期组队到现在…...
2024年度总结-CSDN
2024年CSDN年度总结 Author:OnceDay Date:2025年1月21日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 文章目录 2024年CSDN年度总结1. 整体回顾2…...
2024国游销量前20游戏分析:某开放世界武侠(排名11)
1、销量约20万套,销售额1400万人民币。 与一代的发售间隔为三年。 虽然对于网游大厂来说这个数字不够看,但对一个小团队来说足够维持了,三年的运营成本不是小数目。 2、开发商属于国内最早做3DMMO的厂商之一,创始人曾在国外大学…...
如何使用python技术爬取下载百度文库文档?
使用 Python 爬取百度文库文档需要通过分析网页结构和接口请求来实现。以下是一个基于搜索结果的实现方法,适用于爬取百度文库中的文档内容: 第一部分:获取百度文库文档 实现步骤 获取文档 ID 和基本信息 通过文档的 URL 获取文档 ID&…...
navicat无法连接虚拟机的docker中的mysql
我的数据库安装在了虚拟机的docker中,启动MySQL后,在主机上使用navicat一直连接不上。 首先确认密码是否有问题: docker exec -it mysql8 bash #进入mysql容器 mysql -u root -p #登录MySQL,我这边密码是123456 密码没问题的话…...
如何使用CRM数据分析优化销售和客户关系?
嘿,大家好!你有没有想过为什么有些公司在市场上如鱼得水,而另一些却在苦苦挣扎?答案可能就藏在他们的销售策略和客户关系管理(CRM)系统里。今天我们要聊的就是如何通过有效的 CRM 数据分析来提升你的销售额…...
【Unity3D】3D物体摆放、场景优化案例Demo
目录 PlaceManager.cs(放置管理类) Ground.cs(地板类) 和 GroundData.cs(地板数据类) 额外知识点说明 1、MeshFilter和MeshRenderer的Bounds区别 2、Gizmos 绘制一个平行于斜面的立方体 通过网盘分享的文件:PlaceGameDemo2.unitypackage 链接: https://pan.baid…...
使用HTML5 Canvas 实现呼吸粒子球动画效果的原理
在网页开发领域,动画效果能够极大地提升用户体验,让页面变得更加生动有趣。今天,我们深入剖析一个基于 HTML5 Canvas 的 3D 粒子动画 —— 呼吸粒子球。通过详细解读其代码实现,我们将全面了解如何运用 HTML5 的强大功能构建出如此…...
Java 中实体类与操作类分离
目录 一、为啥要把实体类和操作类分开 二、实体类长啥样,怎么用 三、操作类的使命与实现 四、实战演练:实体类与操作类协同工作 五、拓展思考:这种分离带来的好处与进一步优化 六、总结与展望 家人们,今天我想跟你们唠唠我在…...
【STM32HAL-----GPIO】
1. 什么是GPIO?(了解) 2. STM32 GPIO简介 2.1. GPIO特点 2.2. GPIO电气特性 2.3. GPIO引脚分布图 IO引脚分布特点:按组存在、组数视芯片而定、每组最多16个IO引脚。 3. IO端口基本结构介绍 4. GPIO八种工作模式 4.1. 输入浮空 特…...
Java Web开发高级——单元测试与集成测试
测试是软件开发的重要环节,确保代码质量和功能的正确性。在Spring Boot项目中,单元测试和集成测试是常用的两种测试类型: 单元测试:测试单个模块(如类或方法)是否按预期工作。集成测试:测试多个…...
编译chromium笔记
编译环境: windows10 powershell7.2.24 git 2.47.1 https://storage.googleapis.com/chrome-infra/depot_tools.zip 配置git git config --global user.name "John Doe" git config --global user.email "jdoegmail.com" git config --global …...
Web开发 -前端部分-CSS3新特性
1 CSS概述 2 CSS3私有前缀 3 CSS3的长度单位 代码实现: <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…...
【基础篇】什么是SQL注入,如何防止?
什么是 SQL 注入,如何防止? SQL 注入(SQL Injection)是一种常见的网络安全漏洞,它发生在 Web 应用程序中,当恶意用户在输入数据时,将恶意的 SQL 代码插入到输入中,从而导致应用程序…...
基于Arduino-ESP32的嵌入式车牌识别系统:从问题到落地的全流程实现
基于Arduino-ESP32的嵌入式车牌识别系统:从问题到落地的全流程实现 【免费下载链接】arduino-esp32 Arduino core for the ESP32 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 一、问题发现:嵌入式环境下的车牌识别挑战 智能…...
2026年4月怎么部署OpenClaw?本地简单流程:部署与大模型API、Skill配置教程
2026年4月怎么部署OpenClaw?本地简单流程:部署与大模型API、Skill配置教程。OpenClaw作为2026年主流的AI自动化助理平台,可通过阿里云轻量服务器实现724小时稳定运行,并快速接入钉钉,让AI在企业群聊、个人工作流中自动…...
电源噪声克星:手把手教你用陷波滤波器消除60Hz工频干扰(Matlab/示波器实测)
电源噪声克星:手把手教你用陷波滤波器消除60Hz工频干扰(Matlab/示波器实测) 当你的高精度ADC采集数据出现周期性波动时,很可能是工频干扰在作祟。这种以60Hz(或50Hz)为基频的噪声,就像电子系统中…...
无需安装claude code,在快马平台5分钟构建你的第一个代码生成器原型
最近在研究代码生成工具时,发现Claude Code这个新兴项目挺有意思的。它能够根据自然语言描述生成对应的代码,对于快速原型开发特别有帮助。不过在实际尝试时,我发现本地安装配置过程有点麻烦,需要处理各种环境依赖和版本兼容问题。…...
AI伦理测试:当算法可能产生偏见时
随着人工智能技术从实验室走向规模化应用,算法决策已深度渗透至招聘、信贷、医疗、司法、内容推荐等关乎社会公平与个人福祉的关键领域。对软件测试从业者而言,一个全新的、紧迫的挑战正摆在面前:传统的功能、性能、安全测试已不足以确保AI产…...
智能视频下载解决方案:VideoDownloadHelper高效使用指南
智能视频下载解决方案:VideoDownloadHelper高效使用指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 在数字化时代,…...
douyin-downloader:高效采集抖音内容的全流程解决方案
douyin-downloader:高效采集抖音内容的全流程解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppo…...
编写程序做书架分层标识牌,自动适配文字长度,输出:家庭/书店整理神器。
项目方案:基于Python的书架分层标识牌激光切割生成系统一、 实际应用场景描述想象一下这样的场景:你拥有一个摆放着数百本书的家庭书房,或者你经营着一家独立书店。为了快速找到书籍,你需要制作贴在书架隔板前沿或立在书架顶端的分…...
音乐格式自由革命:NCMDump终极指南让你轻松解锁网易云加密音乐
音乐格式自由革命:NCMDump终极指南让你轻松解锁网易云加密音乐 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的歌曲只能在特定客户端播放而烦恼吗?你是否曾经因为NCM格式的限制而无法在…...
RexUniNLU步骤详解:下载→启动→选择任务→查看JSON结果全流程
RexUniNLU步骤详解:下载→启动→选择任务→查看JSON结果全流程 你是不是觉得自然语言处理(NLP)特别复杂?光是命名实体识别、关系抽取、情感分析这些名词就够让人头疼了,更别说还要为每个任务单独找模型、写代码、调参…...
