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

齐河网站建设公司邯郸信息港最新招聘信息2023

齐河网站建设公司,邯郸信息港最新招聘信息2023,上海外包seo,网页设计代码简单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.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的模拟实现 从栈的接口中可以看出栈实际是一种特殊的vector因此使用vector完全可以模拟实现stack。 #pragma once #includeassert.hnamespace zxj {//templateclass T,class ContainervectorT//templateclass T,class ContainerlistTtemplateclass T,class ContainerdequeTclass 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(){stackintst;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 #includeassert.hnamespace zxj {//templateclass T, class Container listTtemplateclass T, class Container dequeTclass 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(){queueintst;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和listdeque的应用并不多而目前能看到的一个应用就是STL用其作为stack和queue的底层数据结构。 3.3.3. 为什么选择deque作为stack和queue的底层默认容器
http://www.laogonggong.com/news/139324.html

相关文章:

  • 耿马网站建设网站建设与管理任务分工
  • 阿里云购买网站空间杭州网站设计公司推荐
  • 视频建设网站途牛网网站建设评价
  • 内蒙古建设执业资格注册中心网站wordpress 访问统计插件
  • seo网站推广经理招聘wordpress 分类描述
  • 门户网站制作全包自己做网站能赚钱么
  • 做推广哪个网站好wordpress 重置管理员密码
  • 网站建设技巧饣金手指排名27品牌营销网站建设流程
  • 电子商务网站建设主管的策划案男女做的羞羞事的网站
  • 免费淘宝客网站模板平面设计培训班学费一般多少
  • 网站建设需要注意事项商城类网站备案
  • 全网营销网站怎么做怎能建设个人网站
  • 常州网站制作策划免费的云服务器有哪些
  • 什么网站可以免费做视频深圳影视广告哪里有提供
  • 站酷设计网站首页网站目录生成
  • 有什么网站用名字做图片大全长沙网站拓谋网络
  • 网站面包屑导航设计特点成都旅游住哪里最方便
  • 网站建设的常见问题抖音代运营收费标准参考
  • 做视频上传到网站怎么赚钱平面设计网名
  • 如何制作家具网站网站首页标题设置
  • 怎么样建设个人网站外链服务
  • 柳州市城乡建设局网站怎么建设淘宝客网站
  • 网站技术团队贵阳手机网站建设
  • 汶川县建设局网站建站程序选择
  • 网站网页设计0基础学wordpress 分类目录删除
  • 江苏企业网站建设公司wordpress建站项目
  • 网站别人帮做的要注意什么东西网页链接制作软件
  • 低多边形网站网站icp备案时间
  • 模拟网站效果个人不动产证查询官网
  • 河北精品网站建设门户网站建设的特点