Item47

STL迭代器分類:input迭代器、output迭代器、forward迭代器、bidirectional迭代器、random access迭代器。 算法

Input迭代器:只能向前移動,一次一步,客戶只讀取(不可寫)他們所指的東西,並且只能讀取一次。C++程序庫中的istream_iterators就是input迭代器:模仿指向輸入文件的閱讀指針。 dom

Output迭代器:只能向前移動,一次一步名客戶只可寫(不可讀)他們所指的東西,並且只能寫一次。C++程序庫中的ostream_iterator就是output迭代器:模仿指向輸出文件的塗寫指針。 spa

Forward迭代器:能夠作前述兩種分類所能做的每一件事,並且能夠讀或寫其所指物一次以上。(可施行於屢次性操做算法) 指針

Bidirectional迭代器:他除了能夠向前移動還能夠向後移動。STL的list迭代器就是這一類:set、multiset、map、multimap。 繼承

Random access迭代器:能夠在常量時間內向前或向後跳躍任意距離。Vector、deque、string迭代器就是這一類。 input

 

struct input_iterator_tag{}; string

struct output_iterator_tag{}; it

struct forward_iterator_tag: public input_iterator_tag{}; io

struct bidirectional_iterator: public forward_iterator_tag{}; stream

struct random_access_iterator: public bidirectional_iterator_tag{};

這些structs之間的是繼承關係。

相關文章
相關標籤/搜索