文章目錄
Chapt 7 Iterators7.1 標頭檔
每個容器都定義它們自己的iterator類型,因此通常你不需要特殊的標頭檔來使用iterator。但是有幾種特殊的iterator,例如reverse iteratos,它們被定義在<iteraor>標頭檔中。同樣,你也不需要自己包含此標頭檔,它們已經被容器包含以定義它們自己的特定iterator
7.2 Iterator Categories
| Iterator Category |
Ability |
Provider |
| Input iterator |
Read, forward |
istream |
| Output iterator |
Write, forward |
ostream, inserter |
| Forward iterator |
Read/write, forward |
|
| Bidirectional iterator |
Read/write, forward/backward |
list, set/multiset,map/multimap |
| Rabdin access iterator |
Read/write, random access |
vector, deque,string,array |
7.2.1 Input iterators
支援的操作:
| 操作 |
Input iterator |
Output iterator |
Forward Iterator |
Bidirectional iterator |
Random access iterator |
| *iter |
√ |
|
√ |
√ |
√ |
| iter->member |
√ |
|
√ |
√ |
√ |
| *iter = value |
|
√ |
√ |
√ |
√ |
| iter1 = iter2 |
|
|
√ |
√ |
√ |
| ++iter |
√ |
√ |
√ |
√ |
√ |
| iter++ |
√ |
√ |
√ |
√ |
√ |
| --iter |
|
|
|
√ |
√ |
| iter-- |
|
|
|
√ |
√ |
| iter1==iter2 |
√ |
|
√ |
√ |
√ |
| iter1!=iter2 |
√ |
|
√ |
√ |
√ |
| iter[n] |
|
|
|
|
√ |
| iter += n |
|
|
|
|
√ |
| iter -= n |
|
|
|
|
√ |
| iter + n |
|
|
|
|
√ |
| n + iter |
|
|
|
|
√ |
| iter - n |
|
|
|
|
√ |
| iter1 - iter2 |
|
|
|
|
√ |
| iter1 < iter2 |
|
|
|
|
√ |
| iter1 > iter2 |
|
|
|
|
√ |
| iter1 <= iter2 |
|
|
|
|
√ |
| iter1 >= iter2 |
|
|
|
|
√ |
| TYPE(iter) |
√ |
√ |
√ |
√ |
√ |