<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C++STL 學習 之 迭代器(iterators)

      首先要明確迭代器是一個抽象的設計概念,是一種設計模式. Design Patterns 一書中對 Iterators模式的定義如下:提供一種方法,使之能夠依序訪問某個容器所包含的各個元素,而無需暴露該容器的內部表達方式,也就是說,Iterators的實現依賴于具體的容器,是針對某種容器特別設計的,只是對外提供一套統一的訪問接口.
      此外,STL的設計思想就是將數據容器和算法分離,彼此獨立設計,最后用一種方式將他們粘合在一起,而Iterators便是這其間的粘合劑.從這個角度看,Iterators設計模式正好可以勝任該目標.

      1.STL中 Iterators 的設計思路

      迭代器本質是一種智能指針,是一種類似指針的對象,因此,對迭代器的設計主要是實現解引用()和成員訪問(->),所以,主要的編程工作就是對operatorhe operator->進行重載

      2.迭代器的相應型別(associated types)

      迭代器的相應型別指的是迭代器所指之物的類型。
      思考:假如要聲明一個變量,該變量的類型是迭代器所指對象的類型,如何聲明?解決辦法:利用函數模板中的參數推導機制。

      3. Traits(特性萃取)編程技巧

      為了解決如何斷定迭代器所指之物的類型問題,相應型別無法完美解決,引入Traits技巧
      如何實現?
      (1)首先,在類模板中聲明一個內置類型:typedef T value_type
      (2)針對原生指針,利用模板偏特化(對部分模板參數進一步限制)技術(因為原生指針無法定義內嵌類型)
      (3)特性萃取實現:
      template <class I>
      struct iterator_traits {
      typedef typename I::value_type value_type
      }
      偏特化實現:
      template <class I>
      struct iterator_traits<T*> {
      typedef T value_type
      }
      (4)總結一下迭代器的實現:首先,對應的容器內部要實現一個內置類型,表示其存儲對象的類型,這是一個約定;然后,針對迭代器不同的相應型別,利用Traits技術和偏特化技術(兼容)實現特性萃取結構體(間接封裝一層,就是為了用偏特化兼容所有類型);最后,通過萃取結構體就可以萃取出迭代器所指之物的類型,達到目的。

      4. 迭代器的五種主要相應型別(特性)

      (1)value type:迭代器所指對象的類型
      (2)difference type:用來表示兩個迭代器之間的距離,因此可以用來表示一個迭代器的最大容量
      (3)reference type:如果p是一個mutable Iterators,如果其value type為T,那么p的類型應該是T&,不應該是T(因為對于mutable變量返回的應該是左值而不是右值),同理,如果p是const Iterators,那么p類型應該為const T&
      (4)pointer type:類似reference type,只不過指針類型指的是地址
      (5)Iterator category:迭代器的種類類型
      迭代器分類圖

      繼承的作用:無論客戶端傳入哪種類型的迭代器,實際調用的都只是被繼承(父類)的類型。
      迭代器都可以繼承它

      posted @ 2019-06-06 15:19  Nolan24  Views(399)  Comments(0)    收藏  舉報
      主站蜘蛛池模板: 午夜福利yw在线观看2020| 国产成人精品日本亚洲网站| 狠狠亚洲色一日本高清色| 无遮高潮国产免费观看| 亚洲欧美自偷自拍视频图片| 亚洲熟女综合色一区二区三区 | 久久国内精品自在自线91| 精品久久丝袜熟女一二三| 一区二区视频| 99RE8这里有精品热视频| 日本不卡一区二区三区在线| 日韩成人高精品一区二区| 屁股中文字幕一二三四区人妻| 国产AV影片麻豆精品传媒| 99中文字幕国产精品| 四虎永久免费精品视频| 18成禁人视频免费| 亚洲无av在线中文字幕| 一区二区三区四区黄色网| 国产办公室秘书无码精品99| 亚洲第一区二区快射影院| 亚洲性日韩精品一区二区三区| 国产高清自产拍AV在线| 司法| 国产亚洲精品AA片在线爽| 搡老熟女老女人一区二区| 欧美亚洲另类制服卡通动漫| 亚洲高清国产自产拍av| 欧美特级午夜一区二区三区| 国产精品福利中文字幕| аⅴ天堂中文在线网| 亚洲欧美日韩国产四季一区二区三区 | 亚洲午夜福利AV一区二区无码| 南雄市| 午夜爽爽爽男女免费观看影院| 在国产线视频A在线视频| 永善县| 99久久精品久久久久久婷婷| 久热爱精品视频线路一| 靖西县| 丰满高跟丝袜老熟女久久 |