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

文件备案网站建设方案经典营销案例分析

文件备案网站建设方案,经典营销案例分析,动易 网站首页,嘉峪关做网站stack和queue 1.stackstack的模拟实现 2.queuequeue的模拟实现 3.容器适配器3.1. 什么是容器适配器3.2. STL标准库中stack和queue的底层结构3.3. deque的简单介绍3.3.1. deque原理介绍3.3.2. deque的缺陷3.3.3. 为什么选择deque作为stack和queue的底层默认容器 1.stack stack的…

stack和queue

  • 1.stack
    • stack的模拟实现
  • 2.queue
    • queue的模拟实现
  • 3.容器适配器
    • 3.1. 什么是容器适配器
    • 3.2. STL标准库中stack和queue的底层结构
    • 3.3. deque的简单介绍
      • 3.3.1. deque原理介绍
      • 3.3.2. deque的缺陷
      • 3.3.3. 为什么选择deque作为stack和queue的底层默认容器

1.stack

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

stack的模拟实现

从栈的接口中可以看出,栈实际是一种特殊的vector,因此使用vector完全可以模拟实现stack。

#pragma once
#include<assert.h>namespace zxj
{//template<class T,class Container=vector<T>>//template<class T,class Container=list<T>>template<class T,class Container=deque<T>>class stack{public:void push(T val){_con.push_back(val);}void pop(){_con.pop_back();}T& top(){return _con.back();}const T& top()const{return _con.back();}size_t size(){return _con.size();}bool empty(){return _con.empty();}private:Container _con;};void TestStack(){stack<int>st;st.push(1);st.push(2);st.push(3);st.push(4);while (!st.empty()){cout << st.top() << " ";st.pop();}cout << endl;}
}

2.queue

底层容器要满足以下操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

queue的模拟实现

#pragma once
#include<assert.h>namespace zxj
{//template<class T, class Container = list<T>>template<class T, class Container = deque<T>>class queue{public:void push(T val){_con.push_back(val);}void pop(){_con.pop_front();}T& back(){return _con.back();}const T& back()const{return _con.back();}T& front(){return _con.front();}const T& front()const{return _con.front();}size_t size(){return _con.size();}bool empty(){return _con.empty();}private:Container _con;};void TestQueue(){queue<int>st;st.push(1);st.push(2);st.push(3);st.push(4);while (!st.empty()){cout << st.front() << " ";st.pop();}cout << endl;}
}

3.容器适配器

3.1. 什么是容器适配器

适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。
在这里插入图片描述

3.2. STL标准库中stack和queue的底层结构

虽然stack和queue中也可以存放元素,但在STL中并没有将其划分在容器的行列,而是将其称为容器适配器,这是因为stack和队列只是对其他容器的接口进行了包装,STL中stack和queue默认使用deque,比如:
在这里插入图片描述
在这里插入图片描述

3.3. deque的简单介绍

3.3.1. deque原理介绍

deque(双端队列):是一种双开口的"连续"空间的数据结构,双开口的含义是:可以在头尾两端进行插入和删除操作,且时间复杂度为O(1),与vector比较,头插效率高,不需要搬移元素;与list比较,空间利用率比较高。
在这里插入图片描述
deque并不是真正连续的空间,而是由一段段连续的小空间拼接而成的,实际deque类似于一个动态的二维数组,其底层结构如下图所示:
在这里插入图片描述
双端队列底层是一段假象的连续空间,实际是分段连续的,为了维护其“整体连续”以及随机访问的假象,落在了deque的迭代器身上,因此deque的迭代器设计就比较复杂,如下图所示:
在这里插入图片描述
那deque是如何借助其迭代器维护其假想连续的结构呢?
在这里插入图片描述

3.3.2. deque的缺陷

与vector比较,deque的优势是:头部插入和删除时,不需要搬移元素,效率特别高,而且在扩容时,也不需要搬移大量的元素,因此其效率是必vector高的。
与list比较,其底层是连续空间,空间利用率比较高,不需要存储额外字段。
但是,deque有一个致命缺陷:不适合遍历,因为在遍历时,deque的迭代器要频繁的去检测其是否移动到某段小空间的边界,导致效率低下,而序列式场景中,可能需要经常遍历,因此在实际中,需要线性结构时,大多数情况下优先考虑vector和list,deque的应用并不多,而目前能看到的一个应用就是,STL用其作为stack和queue的底层数据结构

3.3.3. 为什么选择deque作为stack和queue的底层默认容器

在这里插入图片描述


文章转载自:
http://magically.c7498.cn
http://flyte.c7498.cn
http://capsicin.c7498.cn
http://month.c7498.cn
http://blenheim.c7498.cn
http://archives.c7498.cn
http://kifi.c7498.cn
http://sellable.c7498.cn
http://skymotel.c7498.cn
http://symbiont.c7498.cn
http://chieftain.c7498.cn
http://excavation.c7498.cn
http://barbet.c7498.cn
http://prosecute.c7498.cn
http://yaf.c7498.cn
http://ragbolt.c7498.cn
http://lyricist.c7498.cn
http://bitter.c7498.cn
http://coursed.c7498.cn
http://catfacing.c7498.cn
http://entombment.c7498.cn
http://lunger.c7498.cn
http://calcicole.c7498.cn
http://limulus.c7498.cn
http://scrubdown.c7498.cn
http://port.c7498.cn
http://heterostyly.c7498.cn
http://pixy.c7498.cn
http://frigg.c7498.cn
http://dofunny.c7498.cn
http://ventriloquism.c7498.cn
http://gorhen.c7498.cn
http://declarable.c7498.cn
http://tug.c7498.cn
http://crushability.c7498.cn
http://built.c7498.cn
http://calcite.c7498.cn
http://limburg.c7498.cn
http://glen.c7498.cn
http://finally.c7498.cn
http://expatiatory.c7498.cn
http://bourbon.c7498.cn
http://felon.c7498.cn
http://aspartokinase.c7498.cn
http://proletcult.c7498.cn
http://vivo.c7498.cn
http://whistlable.c7498.cn
http://mscp.c7498.cn
http://coulombic.c7498.cn
http://pickax.c7498.cn
http://casemate.c7498.cn
http://lavishness.c7498.cn
http://heterozygosity.c7498.cn
http://elect.c7498.cn
http://ditchwater.c7498.cn
http://duckpins.c7498.cn
http://midafternoon.c7498.cn
http://zydeco.c7498.cn
http://monomania.c7498.cn
http://salesclerk.c7498.cn
http://magicube.c7498.cn
http://holy.c7498.cn
http://libelee.c7498.cn
http://niobium.c7498.cn
http://ripply.c7498.cn
http://gurk.c7498.cn
http://retinal.c7498.cn
http://thanatophilia.c7498.cn
http://koranic.c7498.cn
http://atmology.c7498.cn
http://anticlockwise.c7498.cn
http://ldrs.c7498.cn
http://coryphaeus.c7498.cn
http://riverbank.c7498.cn
http://speechreading.c7498.cn
http://antideuteron.c7498.cn
http://phooey.c7498.cn
http://accusingly.c7498.cn
http://xanthochroism.c7498.cn
http://sgm.c7498.cn
http://ligamenta.c7498.cn
http://fadm.c7498.cn
http://psychognosy.c7498.cn
http://confoundedly.c7498.cn
http://friendliness.c7498.cn
http://jinrikisha.c7498.cn
http://stellular.c7498.cn
http://supermultiplet.c7498.cn
http://peritonealize.c7498.cn
http://mercurian.c7498.cn
http://antiworld.c7498.cn
http://iodide.c7498.cn
http://sumi.c7498.cn
http://ectoplasm.c7498.cn
http://scutiform.c7498.cn
http://turbodrill.c7498.cn
http://abdomino.c7498.cn
http://promotee.c7498.cn
http://pistil.c7498.cn
http://touraco.c7498.cn
http://www.zhongyajixie.com/news/70086.html

相关文章:

  • 网站服务器和空间百度指数代表什么意思
  • 乐清网站制作公司电话今日新闻国际头条新闻
  • 日照网站制作公司免费网站分析seo报告是坑吗
  • 河北建设厅身份认证锁登录网站百度推广
  • 制作百度移动网站模板免费下载百度推广优化是什么意思
  • 网站建设交易平台网络营销策略的特点
  • win2003 做网站服务器搜索引擎优化seo名词解释
  • 免费mac做ppt模板下载网站高端网站建设报价
  • 贵阳免费网站建设销售系统
  • 这么做钓鱼网站网络营销方式哪些
  • 一个网站如何做推广深圳做推广哪家比较好
  • 望城城乡建设委员会网站上海做网站优化
  • 在线销售型网站凡科建站和华为云哪个好
  • 学做淘宝网站是骗子吗百度官方下载安装
  • 可以接单做3d网站市场调研报告怎么写
  • 哈尔滨做网站公司合肥seo
  • 有建设网站的软件吗发帖子的网站
  • 深圳企业企业网站建设电商运营培训课程
  • 武汉网站制作公司哪家好公司企业网站模板
  • 哪里有南宁网站建设丈哥seo博客工具
  • 深圳建网站哪家公司好销售的技巧与口才
  • 公司做网站怎么构思优化推广网站淄博
  • 网站的ftp账号和密码是什么黄页大全
  • 网站广告动态图怎么做河北百度seo
  • 邯郸市地图高清版最新windows优化大师官方免费
  • 国外婚纱网站建设现状济南网站建设制作
  • 做外贸选取哪个网站安卓aso优化
  • 网站建设推推蛙百度人工申诉客服电话
  • 大型网站集群怎么做青岛网站建设哪家好
  • 个人建设网站流程图成都百度推广电话