iterator迭代器详解_迭代器是什么

iterator迭代器详解_迭代器是什么迭代器 Iterator动机模式定义实例结构要点总结笔记动机在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象.我们希望在不暴露其内部结构地同时.可以让外部客户代码透明地访问其中包含地元素;同时这种”透明遍历”也为”同一种算法在多种集合对象上进行操作”提供了可能.使用面向对象技术将这种便利机制抽象为”迭代对象”为”应对变化中地集合对象”提供了一种优雅地方式模式定义提供了一种方法顺序访问一个聚合对象中地各个元素,而又不暴露(稳定)该对象地内部表示.实例结构要点总结迭代抽象

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

动机

在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象.我们希望在不暴露其内部结构地同时.可以让外部客户代码透明地访问其中包含地元素;同时这种”透明遍历”也为”同一种算法在多种集合对象上进行操作”提供了可能.

使用面向对象技术将这种便利机制抽象为”迭代对象”为”应对变化中地集合对象”提供了一种优雅地方式

模式定义

提供了一种方法顺序访问一个聚合对象中地各个元素,而又不暴露(稳定)该对象地内部表示.

实例

结构

在这里插入图片描述

要点总结

  • 迭代抽象:访问一个聚合对象的内部不需要了解他的具体实现细节
  • 迭代多态:为遍历不同的集合结构提供一个统一的接口.从而支持同样的算法在不通的集合结构上进行操作
  • 迭代器的健壮性考虑:遍历的同时更改迭代器所在的集合结构,会导致问题

笔记

  • 虚函数也有成本
  • 模板也是一种多态技术 但是模板是编译时多态 编译器在编译的时候会辨别调用的那些代码
  • 由于时代变化 面向对象模板设计结构已经老了
  • 上述内容讲的是面向对象式的迭代器
  • C++98之后标准的迭代器式使用模板描述的
  • 其他语言好多有不支持编译时模板 所以好多语言java C#等都式用的面向对象迭代器
  • 思想都是通过迭代器来隔离算法和容器 但是实现的技术已经发生了变化
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168499.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月9日 下午6:36
下一篇 2022年8月9日 下午6:46


相关推荐

  • VS Code注释快捷键[通俗易懂]

    VS Code注释快捷键[通俗易懂]单行注释:Ctrl+/或先按CTRL+K,再按CTRL+U取消单行注释:Ctrl+/或先按CTRL+U,再按CTRL+K块注释Alt+Shift+A

    2022年8月15日
    13
  • DDD 领域驱动设计落地实践:六步拆解 DDD

    DDD 领域驱动设计落地实践:六步拆解 DDD相信通过前面几篇文章的介绍 大家对于 DDD 的相关理论以及实践的套路有了一定的理解 但是理解 DDD 理论和实践手段是一回事 能不能把这些理论知识实际应用到我们实际工作中又是另外一回事 因此本文通过实际的业务分析把之前文章中涉及的理论和手段全部带着大家走一遍 我想通过这种方式 让大家实际的感受下 DDD 落地过程中会遇到哪些问题以及我们应该怎样去解决这些问题

    2026年3月16日
    2
  • centos 7关闭selinux

    centos7关闭selinux查看SELinux状态:getenforce临时设置SeLinux:setenforce0永久修改Selinux为disabled:[root@localhost~]#cat/etc/selinux/config#ThisfilecontrolsthestateofSELinuxonthesystem.#SEL…

    2022年4月7日
    46
  • openbmc开发23:添加fru信息到ipmi

    openbmc开发23:添加fru信息到ipmi前面说过如何添加 sensor 传感器信息 I2C ADC FAN 到 ipmi 接内容说明如何将 fru 信息添加到 ipmi 中 下面将一一道来 1ipmi 配置文件转换成 cpp 在软件包下有一个 scripts 文件夹 这里边是 python 脚本 模板 示例 yaml 文件以及使用说明 本内容介绍 fru 的 yaml 文件 在 configure 阶段 通过 autoconf 工具 解析 configure ac 以及 Makefile am 生成 Makefile 文件 在编译阶段执行 fru gen py 的 python 脚本 根据 fru confi

    2026年3月19日
    2
  • OpenClaw降低澳龙部署门槛,赛博龙虾1分钟即可拥有

    OpenClaw降低澳龙部署门槛,赛博龙虾1分钟即可拥有

    2026年3月14日
    2
  • 使用python快速开发桌面小工具

    使用python快速开发桌面小工具参考链接WelcometoPython.orgExtendingandEmbeddingthePythonInterpreter—Python3.7.3documentation起因更重要在日常开发中,总需要一些普通的小工具。小工具嘛,要得急,写得也急,总有很多不完善的问题,频繁修改成了一个较大的问题。比如之前用c#写了一个将excel表自动转成csv文本的工具,…

    2022年5月20日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号