STL迭代器

http://wenku.baidu.com/view/185cb4bd5ef7ba0d4b733b24.html?from=search


list双向链表,不支持随机操作,因此不提供下标操作符



迭代器之间的层级关系:

输入迭代器                                    输出迭代器

        |                                                  |

        |_________________________|

                                     |     

                            前向迭代器

                                     |

                            双向迭代器

                                     |

                        随机访问迭代器    


每层迭代器包含上层的使用功效。


随机访问迭代器是可以随机访问容器中的元素的双向迭代器。这种迭代器在Vector, Dequeue, string, 和数组类型容器上使用。在双向迭代器上定义的操作也使用于随机访问迭代器。

操作:

  1. rAccessIterator[n]                                     下标访问
  2. rAccessIterator += n                                 向前移动n个元素
  3. rAccessIterator -= n                                  向后移动n个元素
  4. rAccessIterator + n                                    后面n个元素的迭代器
  5. n + rAccessIterator                                    后面n个元素的迭代器
  6. rAccessIterator - n                                     前面n个元素的迭代器                                   
  7. rAccessIt1 - rAccessIt2                             返回rAccessIt1 和 rAccessIt2之间的元素个数
  8. rAccessIt1 < rAccessIt2                            rAccessIt1 在 rAccessIt2 之前
  9. rAccessIt1 <= rAccessIt2                         rAccessIt1 在 rAccessIt2 之前,或相同
  10. rAccessIt1 > rAccessIt2                           rAccessIt1 在 rAccessIt2 之后
  11. rAccessIt1 >= rAccessIt2                         rAccessIt1 在 rAccessIt2 之后,或相同


双向迭代器

作用:既可以向后访问元素,又可以向前访问元素。

操作:

  1. --biDirectionIterator                 前置减量
  2. biDirectionIterator--                 后置减量


注:双向迭代器可以在list, set, multiset, map, multimap 等类型的容器上使用。



前向迭代器结合了所有输入迭代器的功能和几乎所有输出迭代器的功能。

操作:

  1. *forwardIterator                                             解引用 
  2. forwardIterator->member                            成员访问
  3. ++forwardIterator                                          前置增量
  4. forwardIterator++                                          后置增量
  5. forwardIt1 == forwardIt2                              判断是否相等
  6. forwardIt1 != forwardIt2                               判断是否不相等
  7. forwardIt1 = forwardItr2                               赋值



输出迭代器

作用:用于写操作。向输出流中写入数据。

操作:

  1. *outputIterator = value                将value 写到outputIterator的指定位置上
  2. ++outputIterator                            前置增量
  3. outputIterator++                            后置增量

注:输出迭代器不能在某个范围上使用两次。因此,如果在同一个位置上写两次数据不能保证新值一定代替旧值




输入迭代器

作用:从输入流中迭代读入数据

操作:

  1. *inputIterator                                            解引用
  2. inputIterator->number                            访问成员
  3. ++inputIterator                                         前置增量
  4. inputIterator ++                                        后置增量        
  5. inputIt1 == inputIt2                                  判断是否相等
  6. inputIt1 != inputIt2                                    判断是否不相等



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值