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,还是偏特化的

  • 相关阅读:
    mysql dns反说明的成绩
    Solaris 11 安装图解(1)
    Meld 1.1.5
    Open Movie Editor-视频编纂器
    Solaris 11 装配图解(6)
    Pidgin 2.0.2
    Subversion 1.4.4 发布
    Solaris 11 安装图解(5)
    Solaris 11 安置图解(3)
    HTML 实体盘诘东西
  • 原文地址:https://www.cnblogs.com/13224ACMer/p/6391753.html
Copyright © 2011-2022 走看看