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

北京师范大学学风建设专题网站山西做网站多少钱

北京师范大学学风建设专题网站,山西做网站多少钱,新闻软文自助发布平台,网站基础知识域名5个点一、反向迭代器 在list模拟实现的过程中#xff0c;第一次接触了迭代器的封装#xff0c;将list的指针封装成了一个新的类型#xff0c;并且以迭代器的基本功能对其进行了运算符重载 反向迭代器是对正向迭代器的封装#xff0c;并且体现了泛型编程的思想#xff0c;任意… 一、反向迭代器 在list模拟实现的过程中第一次接触了迭代器的封装将list的指针封装成了一个新的类型并且以迭代器的基本功能对其进行了运算符重载 反向迭代器是对正向迭代器的封装并且体现了泛型编程的思想任意类型的双向迭代器都可以直接复用反向迭代器 本章将把两个迭代器的实现放在一起比对更好的体会迭代器的封装 二、list正向迭代器的模拟实现 详解可以看list模拟实现那一章节这里仅提供一份代码用于对照反向迭代器 templateclass T,class Ref,class Ptrstruct __list_iterator{typedef list_nodeT node;typedef __list_iteratorT, Ref, Ptr self;node* _pnode;__list_iterator(node* p):_pnode(p){}self operator(){_pnode _pnode-_next;return *this;}self operator--(){_pnode _pnode-_prev;return *this;}self operator(int){self tmp(_pnode);_pnode _pnode-_next;return tmp;}self operator--(int){self tmp(_pnode);_pnode _pnode-_prev;return tmp;}Ref operator*(){return _pnode-_data;}Ptr operator-(){return (_pnode-_data);}bool operator!(const self p){return _pnode ! p._pnode;}bool operator(const self p){return _pnode p._pnode;}}; 三、反向迭代器的封装实现双向迭代器 反向迭代器的实现是对正向迭代器的封装 1.成员及其初始化 templateclass Iterator,class Ref,class Ptr struct ReserveIterator {typedef ReserveIterator self;//重命名方便使用Iterator _it;//成员变量ReserveIterator(Iterator it):_it(it){} } 2.基本功能的重载 1 和 -- 在反向迭代器的概念中反向迭代器就是正向迭代器-- self operator() {_it--;return *this; } self operator--() {_it;return *this; } //前置和-- self operator(int) {self tmp(*this);_it--;return tmp; } self operator--(int) {self tmp(*this);_it;return tmp; } 2 ! 和 bool operator!(const self s) {return _it ! s._it; } bool operator(const self s) {return _it s._it; } 3 - 和 * 在实现operator*()之前要先理解底层在stl库内的实现为了让begin()和rend(),所在的物理空间上对称但在使用的角度上来看并不对称为了使其对称且不影响使用对*和-的实现作出了调整解引用返回的是其前一个的位置 Ref operator*() {Iterator tmp(_it);_it--;return *tmp; } Ptr operator-() {Iterator tmp(_it);_it--;return (*_it); } 3.定义部分 typedef __list_iteratorT, T, T* iterator;typedef __list_iteratorT, const T, const T* con_iterator;typedef ReverseIteratoriterator, T, T* reverse_iterator;typedef ReverseIteratoriterator,const T,const T* con_reverse_iterator;iterator begin(){return iterator(_head-_next);}iterator end(){return iterator(_head);}con_iterator begin()const{return con_iterator(_head-_next);}con_iterator end()const{return con_iterator(_head);}reverse_iterator rbegin(){return reverse_iterator(end());}reverse_iterator rend(){return reverse_iterator(begin());} 总结 本章整理了关于反向迭代器的相关内容以及模拟实现
http://www.sadfv.cn/news/81239/

相关文章:

  • 网站外包怎么做怎样做网站推广啊
  • 电商网站如何设计内容我的网站搜索不到了
  • 手机网站制作合同wordpress网站托管
  • 如网站站长如何对付黑客wordpress 支付下载
  • 做网站永久网站建设文化流程
  • 外贸网站制作需求wordpress导入演示
  • wordpress不允许评论优化大师软件下载
  • 有什么手机做网站的网站建设公司经营范围
  • 免费发布网站长沙网站建设公司哪家专业
  • 销售网站模板免费下载wordpress官方空间
  • 做网站在哪里找客户wordpress自适应相册
  • 莒县网站建设公司网页设计做音乐网站
  • 网站关键词排名优化技巧开封企业网站建设
  • 网站建设投标书免费多语网站建设
  • 罗湖网站建设联系电话如何在招聘网站上做薪酬统计
  • 福州网站设计大概多少钱做数学题好的网站
  • 织梦通用企业网站模板网站开发相关的教材书籍
  • 个人设计网站模板找事做网站怎么弄
  • 网站策划php外贸网站制作
  • it网上做笔记的网站西安房产网最新楼盘
  • 广州电商网站建设做h5网站
  • 建一个门户网站多少钱wordpress 群发消息
  • 怎么做自己的设计网站如何免费注册网站平台
  • 上海建设银行长宁区各分行网站搜索引擎推广公司
  • 广州网站建设腾虎百度h5怎么发布
  • 关于政协 网站建设点击一个网站跳转到图片怎么做的
  • 企业软件网站建设建网络平台要多少费用
  • 建设部网站怎么查岗位人员哈尔滨百度网站快速优化
  • app源码网站wordpress新建的页面不存在
  • 做网站一般收取多少钱平面设计师必去的网站