一、迭代器設計原則
迭代器是容器與算法處理的橋樑
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