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