1 InputIterator 可以被用來讀取容器中的元素但是不保證支持向容器的寫入操作
InputIterator 必須提供下列最小支持提供其他支持的iterator 也可被用作InputIterator 只要
它們滿足這個最小要求集兩個iterator 的相等和不相等測試通過operator ++ 的前置和
后置實例向前遞增iterator 指向下一個元素通過解引用操作符operator * 讀取一個元素
求在這個層次上提供支持的泛型算法包括find() accumulate()和equal() 任何一個算法如果
要求InputIterator 那么我們也可以向其傳遞第3 4 5 項列出的iterator 類別中的任一個
即:只要某個類實現上面的操作既可以被認為是InputIterator。2 OutputIterator 可以被認為是與InputIterator 功能相反的iterator 即它可以被用來向容
器寫入元素但是不保證支持讀取容器的內容OutputIterator 一般被用作算法的第三個實參
標記出起始寫入的位置例如copy()取OutputIterator 作為第三個實參任何一個算法如果
要求OutputIterator 那么我們也可以向其傳遞第3 4 5 項列出的iterator 類別中的任一個
注意:這個迭代器似乎僅僅實現了賦值操作即可
3 ForwardIterator 可以被用來以某一個遍歷方向是的下一個類別支持雙向遍歷向
容器讀或寫有些泛型算法至少要求ForwardIterator 包括adjacent_find() swap_range()和
replace() 當然任何要求ForwardIterator 支持的算法都可以向其傳遞第4 和5 項定義的iterator
類別
注意:這個迭代器既符合InputIterator又符合OutputIterator,同樣下面兩個也是這樣。支持operator++操作4 BidirectionalIterator 從兩個方向讀或寫一個容器有些泛型算法至少要求
BidirectionalIterator 包括inplace_merge() next_permutation()和reverse()
注意:繼承1,2,3的特性,并且支持operator--操作5 RandomAccessIterator 除了支持BidirectionalIterator 所有的功能之外還提供了在
常數時間內訪問容器的任意位置的支持要求RandomAccessIterator 支持的泛型算法包括
binary_search() sort_heap()和nth_element()
注意:繼承1,2,3的特性,并且符合隨機訪問策略,即支持operator[]操作