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

湘西土家族苗族自治州网站建设_网站建设公司_SEO优化_seo优化

做视频在线观看网站,没有充值入口的传奇手游,湖南网站开发 岚鸿,化肥厂的网站摸板前言#xff1a; 上一章我们介绍了适配器#xff0c;也提了一下迭代器适配器#xff0c;今天我们就从反向迭代器把迭代器适配器给解释一下。 既然 都叫迭代器容器了 就说名只要接口合适他可以封装实现各种容器需求包括vector list 。 目录 1.反向迭代器设计 1.1反向迭代…前言 上一章我们介绍了适配器也提了一下迭代器适配器今天我们就从反向迭代器把迭代器适配器给解释一下。 既然 都叫迭代器容器了 就说名只要接口合适他可以封装实现各种容器需求包括vector list 。 目录 1.反向迭代器设计 1.1反向迭代器思想  1.2多参数模板 2.vecor反向迭代器 3.list反向迭代器 1.反向迭代器设计 反向迭代器 reverse_iterator 可以用来反向遍历容器在某些场景下很实用 1.1反向迭代器思想  因为数组比较简单我们就从数组引出反向的思想。  注库中的反向迭代器在设计时为了最求极致的对称rbegin() 指向最后一个有效元素的下一个位置rend() 指向第一个有效元素位置是与正向迭代器相反的 通过图示知道反向迭代器的就是正向迭代器的--。反向迭代器的--就是正向迭代器的因此反向迭代器的实现可以借助正向迭代器即反向迭代器内部可以包含一个正向迭代器对正向迭代器的接口进行包装即可。 1.2多参数模板 在模拟实现list迭代器时候我们在const对象对普通对象代码的复用的 过程中引入了多参数模板不同参数实现不同功能反向迭代器的实现同样适用。有两点需要注意 重载operator*返回的是目标对象的引用又因为库里追求极致对称所以我们应该先执行--操作后返回对象的引用。具体返回的对象是否需要const修饰取决于我们使用的模板参数。 #pragma once namespace cmx {template class iterator, class Ref, class Ptrstruct Reverselterator{typedef Reverselteratoriterator, Ref, Ptr self;iterator _it;Reverselterator(iterator it):_it(it){}Ref operator *(){iterator tmp _it;return *(--tmp);}Ptr operator -(){return (operator*());}self operator(){-- _it;return *this;}self operator--(){ _it;return *this;}bool operator !(const self s) const{return _it ! s._it;}};} 完成头文件的编写之后我们就可以把他运用于所有可以用迭代器访问的容器 比如 vector list只需要修改模版参数中正向迭代器的代码就可以适配出属于自己的反向迭代器。 2.vecor反向迭代器 只需要引用 反向迭代器的头文件 ReverseIterator.h 就可以使用具体代码如下 #includeassert.h #includeReverseIterator.hnamespace cmx {templateclass Tclass vector{public:typedef T* iterator;typedef const T* const_iterator;typedef Reverselteratoriterator, T, T* reverse_iterator;typedef Reverselteratorconst_iterator, const T, const T* const_reverse_iterator;reverse_iterator rebegin(){//this调用的end()函数return reverse_iterator(end());}reverse_iterator rend(){return reverse_iterator(begin());} 3.list反向迭代器 代码如下 templateclass Tclass list{typedef list_nodeT Node;public:typedef __list_iteratorT, T, T* iterator;typedef __list_iteratorT, const T, const T* const_iterator;typedef Reverselteratoriterator, T, T* reverse_iterator;typedef Reverselteratorconst_iterator, const T, const T* const_reverse_iterator;
http://www.ihoyoo.com/news/80650.html

相关文章:

  • 深圳网站公司推广平台站内关键词排名软件
  • 偃师网站制作青羊区建设网站
  • 网站网页怎么设计如何看网站是html几代做的
  • wordpress仿站实战教程百度拍照搜题
  • 菜鸟教程网站建设专业集团门户网站建设方案
  • 什么专业会制作网站宣城市建设监督管理局网站首页
  • 网站建设朱宁创意设计公司名字大全
  • 网站你懂我意思正能量晚上在线下载免费软件魅族西安网站设计开发
  • 简约创意情人节海报设计网站搜索引擎优化技术
  • 免备案的网站首页网站开发公司北京
  • 百度推广和网站建设推广的区别安丘网站建设
  • 如何建设企业人力资源网站搜索引擎网站提交入口
  • 一个人做企业网站要多少天腾讯云可以用wordpress教程
  • 广州木马网站建设公司怎么样淘宝api wordpress
  • 网站流量超了北京seo相关
  • 做伤残鉴约号网站洛阳网站建设制作多少钱
  • 微网站 htmlwordpress 阿里云cdn
  • 大型网站建设哪家快网站是否必须做认证
  • 上海网站seo优化下载了国外app怎么连不上网
  • 做直播券的网站有多少带娃儿做的工作网站
  • 自适应网站导航是怎么做的网页给别人做的 网站后续收费吗
  • 怎么进入自己网站主机地址wordpress在文章中加背景图片
  • 大学做机器人比赛的网站论坛海门城乡建设管理局网站
  • 免费制作个人简历的网站可以看国外网站的浏览app
  • wordpress视频类模板下载seo在线外链
  • 图书馆网站开发策划书黑龙江建设网监理证书
  • 网站加上视频对seo影响网站内容管理系统怎么用
  • 绍兴网站建设推广杭州注册公司有什么优惠政策
  • 做的好的营销型网站有哪些关于学校的网站模板免费下载
  • 京东网站的建设与发展网站建设的讲话稿