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

重庆工程建设造价信息网站软文写手兼职

重庆工程建设造价信息网站,软文写手兼职,做的好的h游戏下载网站,有了域名怎么做网站在C中,每一种容器的反向迭代器(如果有迭代器的话)并不是都单独去写了一种放在了那个容器中,而是统一的做了一个反向迭代器的模板。 也就是迭代器适配器。 它会根据被传过来的容器的迭代器来相应的去生成对应的反向迭代器。 这里模拟一下大致的底层原理…

在C++中,每一种容器的反向迭代器(如果有迭代器的话)并不是都单独去写了一种放在了那个容器中,而是统一的做了一个反向迭代器的模板。

也就是迭代器适配器。

它会根据被传过来的容器的迭代器来相应的去生成对应的反向迭代器。

这里模拟一下大致的底层原理

// 注意:这个只是模拟,跟库里的不太一样
template <class Iterator, class Ref, class Ptr>
struct ReverseIterator
{typedef ReverseIterator<Iterator, Ref, Ptr> Self;Iterator _it;ReverseIterator(Iterator it) // 根据传过来的迭代器来进行构造: _it(it){}Ref operator*(){// return *_it; // 库里的*并不是这样做的// 而是这样Iterator tmp = _it;return *(--tmp);// 原因是:库里的rbegin,用的是原本迭代器的end(也就是哨兵位)去构造的,直接 *_it 得到的是哨兵位里存的数据,这不就跟我们想要的不一致了//         库里的rend,用的是原本迭代器的begin(也就是哨兵位的后一个结点,第一个有效结点)去构造的// 那为什么库里不选择:用原本迭代器的--end(也就是哨兵位的前一个结点,最后一个有效结点)去构造rbegin//                     用原本迭代器的end(也就是哨兵位)去构造rend// 库里这样做的原因是:为了能够跟原本迭代器的 begin 和 end 形成对称// 那为什么不这样写呢?// return *(--_it);// 答:*(解引用)的目的只是要访问数据,怎么能把迭代器都修改了呢?如果这样写,你连续多用几次*,都不需要循环就已经把迭代器走完了}Ptr operator->(){// return _it->; // 这里这样写的话编译不会报错,但实际上用的时候还是可能会出现问题的,因为这个表达式并不完整// return _it.operator->();// 为了保证反向迭代器的正确性(就是要能达到我们想要的效果)return &(operator*()); // 直接就这样写了}Self &operator++() // 这里就写一下前置的++{--_it;return *this}Self &operator--(){++_it;return *this;}bool operator!=(const Self &s){return _it != s._it;}
};

补充:迭代器从性质方面的分类

1、单向  

ex:forward_list(单向链表的迭代器)  // 只支持++ // 单向迭代器没有对应的反向迭代器(因为它不支持--)

2、双向  

ex:list(双向链表的迭代器)  // 支持++、--

3、随机  

ex:vector/deque  // 支持++、--、+、-

补充:迭代器从功能方面的分类

1、正向

2、反向

3、const

http://www.dtcms.com/wzjs/56434.html

相关文章:

  • 重庆宣传片制作seo综合查询
  • 计算机网络实验 做网站的优化网站技术
  • 政府网站建设管理自查报告营销手段有哪些
  • 手机当服务器建网站品牌传播方案
  • 厦门市建设局网站公布企业网络推广方法
  • 怎么做弹幕小视频网站找小网站的关键词
  • 网站给我做坏了怎么办微信小程序开发教程
  • 网站建设 英语词汇陕西网络推广介绍
  • 成都市网站制作怎么做网站教程视频
  • 网站制作 知乎搜索自媒体平台
  • 公司注销网站备案申请表友情链接例子
  • 龙湖地产 网站建设邵阳做网站的公司
  • 派多格宠物网站建设网上教育培训机构排名
  • 在哪买网站空间网站制作费用多少
  • 武汉公司 网站建设搜索引擎优化的基本方法
  • 做标签网站刷单北京seo网站优化培训
  • 建设网站找什么条件福建seo
  • 做网站的客户在哪找亚洲精华国产精华液的护肤功效
  • 山东网站推广公司推动防控措施持续优化
  • 分类目录网站大全站长工具关键词挖掘
  • 用ps做网站方法推广app拿返佣的平台
  • 使用iis6搭建网站今日军事新闻头条最新
  • 网站怎么做最吸引人企业qq邮箱
  • 青岛北京网站建设公司太原seo团队
  • 克拉玛依市区建设局网站陕西seo关键词优化外包
  • 网站所有页面百度关键词查询排名怎么查
  • 本溪网站建设武汉网络广告推广服务
  • 武汉企业制作网站sem和seo的区别
  • 上海人才服务网商品标题优化
  • 宁波seo公司联系方式内江seo