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

微信网站用什么语言开发金融软件网站建设公司

微信网站用什么语言开发,金融软件网站建设公司,承接做网站的网站,江苏网站建设官网引言模拟实现queue和stack,理解适配器,实现起来非常简单。一、适配器 适配器是一种能让原本不兼容的接口协同工作的设计模式或者组件。它的主要作用是对一个类的接口进行转换,使其符合另一个类的期望接口,进而实现适配和复用。&am…

引言

模拟实现queue和stack,理解适配器,实现起来非常简单。

一、适配器 

        适配器是一种能让原本不兼容的接口协同工作的设计模式或者组件。它的主要作用是对一个类的接口进行转换,使其符合另一个类的期望接口,进而实现适配和复用。(看下面代码来理解)

可以理解为是一个更高层次的封装。(解耦性更高)

比如:stack可以封装list来实现,queue也可以封装一个list来实现,但是list对内存的空间利用率不高。用vector封装实现的话,头插和头删的效率很低。

所以底层实现了一个双端队列deque用来解决上面的问题。

deque(双端队列):是一种双开口的"连续"空间的数据结构,双开口的含义是:可以在头尾两端 进行插入和删除操作,且时间复杂度为O(1),与vector比较,头插效率高,不需要搬移元素;与 list比较,空间利用率比较高。

deque的底层这里就不多描述了。

二、模拟实现queue

queue是先进后出的数据结构,即只能在尾部插入,头部删除。

#include <deque>namespace stl
{template<class T, class Container = deque<T>> //用deque做适配器class queue{public:void push(const T& x) //尾插{_con.push_back(x);}void pop() //头删{_con.pop_front();}size_t size() const  //元素个数{return _con.size();}bool empty() const  //判空{return _con.empty();}const T& front() const //返回队头{return _con.front();}T& front() //返回队头{return _con.front();}const T& back() const  //返回队尾{return _con.back();}T& back()  //返回队尾{return _con.back();}private:Container _con; //适配器适配数据结构};
}

三、模拟实现stack

stack是先进先出的数据结构。

#pragma once
#include <deque>
using namespace std;namespace stl
{template<class T, class Container = deque<T>>class stack{public:void push(const T& x) //入栈{_con.push_back(x);}void pop()  //出栈{_con.pop_back();}void size() const  //元素个数{return _con.size();}bool empty() const  //判空{return _con.empty();}const T& top() const  //返回栈顶{return _con.back();}T& top() //返回栈顶{return _con.back();}private:Container _con;};
}

http://www.dtcms.com/a/596988.html

相关文章:

  • 一个静态网站怎么做南宁网站建设怎么样
  • CGAL(计算几何算法库)
  • 数据中台:打破企业数据孤岛,实现全域资产化的关键一步
  • 如何保持自己的技术前沿性?
  • 『 QT 』显示类控件 二
  • 【Rust】m2 mac 编译linux 、aarch、win 程序
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — Network Kit
  • 使用arduino用 esp32 连接阿里云遇到的坑
  • 哈尔滨市延寿建设局网站巢湖网站开发
  • 制作百度移动网站模板网页服务器一年多少钱
  • 从概念到偏好:文生图模型的四层进化之路(训练过程)
  • Gated DeltaNet 网络学习记录
  • <数据集>yolo航拍斑马线识别数据集<目标检测>
  • GitHub笔记
  • SpringBoot+Vue3无人机AI巡检系统
  • 中山网站百度优化社交网站建设教程
  • 彩票网站怎么做推广淮安高端网站制作
  • 基于MATLAB实现的Elman神经网络用于电力负载预测
  • uni-app iOS日志管理实战,从调试控制台到系统日志的全链路采集与分析指南
  • Python 正则表达式全解析:基础到高效提取实战
  • Kubernetes部署Dashboard服务
  • Psychtoolbox (PTB)安装指南
  • 学习threejs,打造虹彩编织球体
  • 面向对象(上)-MVC设计模式的理解
  • 你访问的网站正在建设wordpress 如何支持短代码
  • 解决Tank and Temple在线测试上传点云过慢的问题
  • Failed to download metadata for repo ‘openresty‘ for Alibaba Cloud Linux 3
  • DSM7.2部署可道云+onlyoffice在线办公系统
  • 博客做网站公司网站建设的现状
  • Linux内核驱动开发实战 --从零构建字符设备驱动