迭代器的設計原則和Iterator Traits的作用與設計

一、迭代器設計原則

迭代器是容器與算法處理的橋樑

category分類,類別

difference_type兩個迭代器之間的距離的類型,容器最大能放多少元素,超過differene_type會有問題。

迭代器的設計原則需要5中type,5種type叫做迭代器iterator associated types關聯

2.爲什麼設計iterator_traits

算法向迭代器提問,迭代器回答

爲什麼需要iterator_traits?算法要問一些問題,指針不能回答出來。iterator_traits區分class的iterator還是native pointer

具體做法:

(1)爲了應付指針的形式,加一箇中間層iterator_traits

(2)利用偏特化的語法分離出指針T*,或者const T*

三、設計iterator_traits

 

爲什麼cont T*類型traits的類型是T?萃取出的value_type目的是用來聲明變量,而聲明一個無法被賦值的變量沒什麼應用,所以iterator(即便是constant iterator)的value type不應加上const

四、各式各樣的traits

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章