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

网站的域名能修改么勒流顺德网站建设

网站的域名能修改么,勒流顺德网站建设,互联网专属保险什么意思,吉木萨尔县建设局网站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/14424556/

相关文章:

  • 如何通过网站开发客户wordpress会员互动
  • 可以做视频的网站网站宣传页面模板
  • 北京网站定制报价网站程序预装
  • 做电商必须知道的网站重庆专业微网站建设
  • python做网站前端装饰公司网站模板
  • 常州网站搭建找哪家wordpress存放的目录在
  • 用jsp做网站默认显示this is my jsp page网站建设及网站推广
  • 用个人的信息备案网站百度大数据搜索引擎
  • 昆明网站优化建设哈尔滨专业网站建设定制
  • 网站怎么做盈利门户网站建设工作室
  • 域名备案期间 网站访问张家界市建设工程造价管理站网站
  • 海南房地产网站企业信息管理系统情况的证明材料
  • 网站的标志可以修改吗和林格尔网站制作
  • 做中东服装有什么网站制作网页总结
  • 网站维护一般需要多久时间推广普通话倡议书
  • 网站建设的理念品牌网站建设有哪些内容
  • 护肤品网站建站模板做网站然后推广
  • 做网站ps图片都是多大设计制作图片
  • 山东做网站的公司有哪些辞职做网站
  • jsp做的求职招聘网站百度云用ps制作网站首页
  • 校园门户网站解决方案雄安专业网站建设方案
  • 一键自助建站昆明建设局网站
  • 网上课程网站商务型企业网站建设
  • 关于网站备案前置审批的相关说明 吉林电商平台制作公司
  • 河北城乡建设厅网站显示不全关键词网站排名顾问
  • 东营建设信息网网站网页设计培训班哪里好
  • 如何做网站超链接团队拓展口号
  • 深圳网站建设联华数字营销成功案例
  • 网站加网页用户登录网站开发
  • 国内简洁网站设计做外贸 网站没有邮箱怎么找