当前位置: 首页 > news >正文

模拟实现queue适配器【队列】【C++】

P. S.:以下代码均在VS2022环境下测试,不代表所有编译器均可通过。
P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。

  

在这里插入图片描述

                                           博主主页:LiUEEEEE
                                                C++专栏
                                              C语言专栏
                                            数据结构专栏
                                            排序算法专栏
                                         力扣牛客经典题目专栏

目录

  • 1、了解适配器是什么
  • 2、队列的模拟实现
  • 3、代码展示
  • 4、结语

1、了解适配器是什么


  适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。
  而C++中的适配器主要是指,通过模板封装,将常用的类类型封装为另一个类的类型,例如接下来所展示的队列,就是通过使用C++库中的vector或list来进行封装来实现。 ‘




2、队列的模拟实现


  本文所模拟实现的队列是通过封装vector进行实现的,其原理与list并无差异,故仅展示封装vector的方式。

在这里插入图片描述

  如上图所示,在C++库中的vector类中,圈出的类函数是模拟实现queue所需要的函数,而在模拟实现过程中,不必再想C语言一样通过自己手动搭建来实现,可以直接使用现有物进行操作。




3、代码展示

template<class T,class Container = vector<T>>
class queue
{
public:queue(){}void push(const T& x){_con.push_back(x);}void pop(){_con.erase(_con.begin());}T& back(){return _con.back();}const T& back()const{return _con.back();}T& front(){return _con[0];}const T& front()const{return _con[0];}size_t size()const{return _con.size();}bool empty()const{return _con.empty();}private:Container _con;
};




4、结语


在这里插入图片描述

  十分感谢您观看我的原创文章。
  本文主要用于个人学习和知识分享,学习路漫漫,如有错误,感谢指正。
  如需引用,注明地址。


http://www.mrgr.cn/news/5856.html

相关文章:

  • 【注解】@JsonProperty 详解
  • 【网络安全】副业兼职日入12k,网安人不接私活就太可惜了!
  • Stable Diffusion整合包与手动本地部署结合内网穿透远程AI绘画
  • 计算机毕业设计选题推荐-民宿可视化分析-Python爬虫-随机森林算法
  • oracle liunx 常用命令
  • HTML组件上传
  • ZooKeeper 的3种部署模式
  • 网络协议概述,ip协议,TCP协议,udp协议,二者区别,python中用socket类实现网络通信程序的编写(服务器套接字实现TCP编程,UDP编程)
  • PPT分享:埃森哲-流程制造的智能工厂规划设计
  • 四十一、【人工智能】【机器学习】- Bayesian Logistic Regression算法模型
  • Java基础知识八
  • 图像识别,图片线条检测
  • WRF-LES与PALM微尺度气象大涡模拟
  • 如何处理前端项目中的SEO优化:从SPA到SSR与SSG
  • 【前端基础篇】CSS基础速通万字介绍(下篇)
  • 贪吃蛇(Qt版)
  • 【ESP-IDF FreeRTOS】任务管理
  • Java蛋糕店烘焙店系统小程序系统源码
  • Flink 流转表,表转流,watermark设置
  • fiddler在软件测试中的使用(详细版)