zoukankan      html  css  js  c++  java
  • iterator 的设计原则和traits

    iterator我前面写过是作为algorithm和container之间的一个桥梁,algorithm进程操作的时候向iterator进行提问,iterator并对提问进行了回答,其中主要就是回答5个特性

    1:iterator_category:迭代器移动性质,比如说有的迭代器只能向前移动++。有的迭代器可以双向移动,有的迭代器只能一个一个移动,有的迭代器可以跳跃式移动

    2:value_type:就是迭代器的类型

    3:different_type :指的是范围,可能是begin到end,可能是其中的某一段区间,,就是说algorithm想要操作那一段区间,

    4:refenrence

    5:pointer

    后两种几乎用不到

    那么算法需要跌倒器返回这么多信息。这不是一个指针所能提供的,间接说明iterator是一个class,

    iterator必须能够应对algorithm的提问

    下面我们看一下2.9和4.9版本的list的iterator,可以看到迭代器里面都是这5个变量,他们都几乎相识

     traits就是萃取机,有的iterator是一个class,但是有的iterator就是一个指针,eg:vector和array,那么一个指针怎么存储呢,这里就用到了萃取机,我们将那5种类型都存在萃取剂里面,算法需要的时候就问iterator traits,iterator traits就问里面的结构(还是iterator),这里会根据algorithm传的类型,判断是使用类的trains,还是偏特化的

  • 相关阅读:
    使用MyEclipse可视化开发Hibernate实例
    Query查询
    Java Filter过滤机制详解(转载)
    持久化对象的状态转换
    经典SQL语句大全
    持久对象的生命周期
    Mysql命令操作
    hibernate常用的接口和类的方法以及持久化对象的状态变化
    mysql的安装
    Visual C# 2008+SQL Server 2005 数据库与网络开发 10.8 小结
  • 原文地址:https://www.cnblogs.com/13224ACMer/p/6391753.html
Copyright © 2011-2022 走看看