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

新桥做网站wordpress 自动 图片

新桥做网站,wordpress 自动 图片,semir是什么牌子衣服,丰都网站1. stack的选型 对于栈的实现是我们非常熟悉的过程#xff1a; C语言基础数据结构——栈和队列_栈和队列 插入取出数据-CSDN博客 _top表示下标#xff0c;_capacity表示空间大小#xff1a; 那么按照我们原来的思路#xff0c;利用_top和_capacity T*来给stack构形。 temp…1. stack的选型 对于栈的实现是我们非常熟悉的过程 C语言基础数据结构——栈和队列_栈和队列 插入取出数据-CSDN博客 _top表示下标_capacity表示空间大小 那么按照我们原来的思路利用_top和_capacity T*来给stack构形。 templatetypename T class stack { public: private:T* _arr;int _top;int _capacity; }; 如果只是按照c语言的思路来实现一个T*的多接口数组就显得有些重复了。 2. 容器适配器  2.1设计模式 设计模式就像兵法一样不是直接拿着刀就上去看早期的代码都会相对无序而是要讲究套路和方法的要注重可维护性。只完成了功能的要求但是在后期如果要debug或者打补丁就很麻烦。现在的设计模式有23种。     我们现在已经或多或少接触了两种设计模式一种是迭代器模式一种是适配器模式。 比如迭代器模式                                           容器适配器一般都没有iterator因为iterator的出现会改变其最本质的访问方式。 2.2适配器 适配器是一种用于转换的装置 适配器适配器的功能就是转换 比如电源适配器。高压线中的电变压到220v的生活用电也需要电源适配器220v通过充电线变成给手机的几伏充电线也需要电源适配器。 那什么是容器适配器呢 栈就是容器适配器队列也是容器适配器。 我们可以自己手搓数组来实现各个接口。那既然要如上文的C语言思路一样使用数组为什么不直接用vector呢 既然能用vector去适配一个栈出来那为什么不能用list去适配一个栈出来呢如下 templatetypename T class stack{ public: private:listT _st; }; 或者 templatetypename T class stack{ public: private:vectorT _st; }; vector和list中都肯定包含push_back  pop_back  back  front这些函数 直接去套用即可。那么我如果两个容器都想使用呢实现两个非常接近的容器适配器吗 显然不是我们直接在模版处传入我们想使用的容器。 3.代码实现  直接在template处多写一个typename方便传容器类型。 如果传入的容器不能使用push_back说明这个容器不能用于适配报错即可。 模版参数就像函数参数一样也可以给缺省值。 比如我们此处就默认stack是包装vector实现的。 templatetypename T,typename Container vectorint class stack { public:void push(const T x) {_st.push_back(x);}void pop() {_st.pop_back();}T top() {return _st.back();}const T top() const {return _st.back();}bool empty() {return _st.empty();}size_t size() {return _st.size();}private:Container _st;}; 就可以直接像正常的vector那样使用了。 或者用list去作为适配的容器 再用代码来实现queue queue适合用vector作为容器来适配吗 在stack中的插入删除都在尾部栈顶进行vector恰好在尾部进行操作比较简单比较吻合。 而queue既需要在尾部操作又需要在头部操作所对于vector这种头插头删时间复杂度都是O(n)的容器来说就不是非常合适。因此我们认为vector不能用于适配  这是用vector实现的方法 但是代价太大了。 所以我们将queue按照list和deque作为可适配的容器实现 templatetypename T,typename Container listint class queue { public:void push(const T x) {_q.push_back(x);}void pop() {_q.pop_front();}bool empty() {return _q.empty();}T front() {return _q.front();}const T front() const {return _q.front();}T back() {return _q.back();}const T back() const {return _q.back();}size_t size() {return _q.size();} private:Container _q; }; 测试 4. 初识deque双端队列 list可以头插头删和尾差尾删 vector支持尾差尾删和方括号访问当然头插头删可以通过insert和erase实现但是时间复杂度较高 deque就是list和vector的结合体 那是不是用deque来实现stack和queue的适配更方便呢 底层结构天差地别但是实际使用效果似乎都不错。
http://www.hkea.cn/news/14313224/

相关文章:

  • 榆树网站建设wordpress 模板 知乎
  • 外贸网站推广技巧政务网站建设工作方案
  • 定安网站制作广州番禺区邮编
  • 中国电信网站备案建设中网站
  • 网站子站建设wordpress 执行sql update
  • 网站的建设与预算教学网站系统流程图
  • 潮安区建设局网站做网站上传的图片大小
  • 建设网站存在的问题邢台seo外包
  • 个性个人网站2024房地产最新消息
  • 微信云网站用什么做万维网站注册
  • 西宁网站建设多少钱c2c网站建设的需求分析
  • 建设项目环评在什么网站公示游戏推广好做吗
  • 备案号怎么放置到网站网站设计的技能要求
  • 中山网站建设最好的公司只有做推广才能搜索到网站吗
  • 潍坊360做网站怎么样一搜个人网站制作
  • 网站建设服务合同 律师免费建电子商务网站
  • 一般做网站销售提成设计师接单渠道
  • 佛山免费网站设计做网站的是怎么赚钱
  • 网站平台建设呈现全新亮点海珠网站建设报价
  • 女性时尚网站模板珠海建站论坛
  • 做公众号封面图的网站营销网站开发isuos
  • 俄语网站推广怎么在百度上打广告
  • 做会计要关注什么网站公司做企业网站须知
  • 彩票网站建设一条龙wordpress 头条采集
  • 建立网站多少钱一年公司网站可以自己做
  • app和微网站的区别是什么普通营业执照有做网站条件吗
  • 江宁网站建设制作网站不备案可以上线吗
  • 广州建设网站的公司哪家好怎么做二级域名网站
  • 潍坊网站建设官网烟台网站建设工资
  • 网校网站建设多少钱中山 网站关键词优化