运算符重载典型应用-迭代器
迭代器模式:
    在不暴露一个对象的内部实现的情况下,提供一种方式,能顺序访问对象的数据元素的    一般情况下,把能存放其它对象的对象,称为 容器对象,如链表、数组等
    在C++中,可以把容器的遍历机制封装成一个对象,称之为 迭代器
    C++的容器类型都应该提供自己的迭代器类型,其中封装了一个指针一组运算符函数
    同时,容器类型 还需要提供 begin end 两个专门的接口
    通过 begin() 获取容器的首元素迭代器,通过 end() 确定最后一个元素 后面那个位置
    例:

class List //容器
    {
    public:
        // 迭代器类型
        class Iterator
        {
        public:
            // 迭代器的构造函数
            Iterator(Node* p): p(p) {}
            // 前++函数
            Iterator& operator++()
            {
                p = p->next;
                return *this;
            }
            // * 运算符,返回迭代器指向对象的值
            std::string operator*() const 
            {
                return p->_data;
            }
            // != 运算符函数,用于判断两个迭代器是否指向同一位置
            bool operator!=(const Iterator& rhs) const 
            {
                return p != rhs.p;
            }
        private:
            Node* p;
        };
        // 容器类型要提供begin和end接口
        Iterator begin(); 
        Iterator end();

private:
        Node* head;
    };

int main()
    {
        List list;
        for (List::Iterator it = list.begin();  it != list.end(); ++it)
        {
            cout << *it << endl;
        }
    }

具体实例代码链接

【实例】迭代器-运算符重载典型应用 ($1196) · 代码片段 · 代码片段 · CODE CHINA



12月2日笔记C++7_运算符重载典型应用-迭代器相关推荐

  1. Vue教程-day05-2018年12月25日笔记

    文章目录 第79个视频 - webpack less文件的处理 考试 第80个视频 - webpack - 图片文件的处理 jpg和jpeg 效果分析 大图片 图片路径问题 注意点 总结 考试 第81 ...

  2. Vue教程-day03-2018年12月21日笔记

    文章目录 上午 - 9点 - 12点 - 3小时 第44个视频 - javascript高阶函数的使用 filter函数 map函数 reduce函数 需求用高阶函数实现 链式编程 箭头函数 之前的购 ...

  3. 12月22日 find命令

    一.find命令 find命令可以根据给定的路径和表达式查找指定的文件或目录.find参数选项很多,并且支持正则表达式,功能强大.和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令 ...

  4. 2019年12月13日

    2019年12月13日 笔记 Linux 1.磁盘分区类 1.df 查看磁盘空间的使用情况 df (disk free):空余硬盘 基本语法: df 选项 功能描述:列出文件系统的整体磁盘使用量,检查 ...

  5. 12月28日 OpenCV 实战基础学习笔记——疲劳检测

    文章目录 前言 一.眨眼疲劳检测 前言 本文为12月28日 OpenCV 实战基础学习笔记--疲劳检测. 一.眨眼疲劳检测 from scipy.spatial import distance as ...

  6. 2017年12月6日 学习笔记(JAVA面试题)

    前段时间都在泡图书馆,看<java核心技术卷1>.感觉好多东西会用了,但是并不知道底层实现原理,还有好多没见过的知识点概念.觉得果然还是要多读书. 接下来准备边读书,边把各种面试题提及的知 ...

  7. 12月19日 OpenCV 实战基础学习笔记——特征匹配

    文章目录 前言 一.特征匹配 1.Brute-force 蛮力匹配 2.1 对 1 匹配 3.k 对最佳匹配 二.答题卡识别 前言 本文为12月19日 OpenCV 实战基础学习笔记--特征匹配,分为 ...

  8. [《南国雪下》闲笔记事集]2010年12月15日 记雪

    朋友的第一条短信:下雪子了,家里可能要下雪了哦! 不一会儿,朋友的第二条短信追来:下雪了,下雪了,很大,很大,就一会儿,全白了,好美哦! 我似乎感觉到朋友此刻的心,应该是狂跳的吧!用手一抹胸口,原来是 ...

  9. GEE学习笔记 五十一:Fusion Table将在2019年12月3日关闭

    由于在知乎专栏上发表GEE的文章被警告过政治态度有问题,所以暂时更新的内容放在CSDN上,后续有可能会回到知乎上继续更新专栏内容. 关于GEE更多的文章可以参考我在知乎的专栏:https://zhua ...

  10. 12月4日云栖精选夜读 | 你不知道的Web前端安全技术

    互联网进入下半场,竞争越发的激烈,能与人工智能比肩的热门职业已然不多.而互联网越发达,各大企业所面临着各种网络安全问题会越发的严峻,Web安全工程师的人才缺口仍在不断扩大.经济理论揭示了需求大于供给时 ...

最新文章

  1. linux系列(六):rmdir命令
  2. 二、Java 面向对象高级——Collection、泛型
  3. Java并发编程-synchronized锁优化
  4. 通讯录 app 使用哪种协议查找服务器上存储的联系人?,uniapp通讯录查找
  5. 降低成本,提高生产力—8句话讲清RPA的部署 1
  6. HTTPS传输协议原理
  7. 一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选
  8. 《Programming in Lua 3》读书笔记(五)
  9. Android Vendor Test Suite (VTS) 作用及测试方法
  10. Android开发人员必看的资料
  11. 测试用例设计方法——等价类划分法
  12. intel服务器最新主板芯片组,英特尔服务器主板芯片组驱动程序
  13. 爱思助手从苹果服务器shsh失败,爱思助手无法提取SHSH降级iOS6.1.2固件教程
  14. C#实现微信自动发送消息
  15. Linux 十四 修改文件操作权限 用户文件权限详解
  16. VBA 合并同文件夹下多工作簿中同名工作表到 一工作簿一工作表
  17. 解决Google Earth谷歌地球无法连接服务器问题
  18. 【寒江雪】UV+Depth信息计算世界坐标
  19. matlab+whisker,Matlab Boxplot:使用特定的百分位数作为上部胡须或在手动上部胡须编辑后删除多余的异常值...
  20. 计算机图片怎么截图快捷键,电脑截图快捷键四种截屏方式,笔记本电脑如何截屏截图?...

热门文章

  1. 以太坊扩容最热门主力方案 Rollup 学习指南
  2. 阿里巴巴JVM调优工具arthas
  3. python中商和余数怎么理解_python中商和余数怎么理解_在Python中获取两数相除的商和余数方法...
  4. [连载]Java程序设计(04)---任务驱动方式:工资结算系统
  5. 人工智能实验四:深度学习算法及应用
  6. Android RecyclerView实现树形列表
  7. 【网络基础篇】8.华为交换机上如何禁用接口g0/0/1
  8. Json-lib用法
  9. android性能分析工具整理
  10. 计算机在会计中的应用毕业论文,计算机审计在中小型会计师事务所的应用 毕业论文...