目录

1. 输入迭代器(Input Iterator):

2. 输出迭代器(Output Iterator):

3. 前向迭代器(Forward Iterator):

4. 双向迭代器(Bidirectional Iterator):

5. 随机访问迭代器(Random Access Iterator):


1. 输入迭代器(Input Iterator):

支持单次读取和前进;即只能遍历一遍集合,并且只能向前跳转。
- 递增操作(Increment):++iter
- 解引用操作(Dereference):*iter
- 比较操作(Equality Comparable):iter1 == iter2、iter1 != iter2
- const支持:同时支持const和non-const迭代器,因为输入流不应该改变容器元素。

2. 输出迭代器(Output Iterator):

支持单次写入和前进;即只能遍历一遍集合,并且只能向前跳转。
- 递增操作(Increment):++iter
- 解引用操作(Dereference):*iter
- 引用操作(Reference):iter = val
- const支持:不支持const迭代器,因为输出流总是允许修改。

3. 前向迭代器(Forward Iterator):

支持读取和写入,多次迭代,和向前跳转。
- 递增操作(Increment):++iter
- 解引用操作(Dereference and Reference):*iter、iter->member
- 比较操作(Equality Comparable):iter1 == iter2、iter1 != iter2
- const支持:同时支持const和non-const迭代器。

4. 双向迭代器(Bidirectional Iterator):

支持前向迭代器的所有操作,并支持向后跳转。
- 递减操作(Decrement):--iter
- const支持:同时支持const和non-const迭代器。

5. 随机访问迭代器(Random Access Iterator):

支持双向迭代器的所有操作,并支持随机跳转和算术运算。
- 递增操作(Increment):++iter
- 递减操作(Decrement):--iter
- 加法和减法操作(Arithmetic):iter + n、iter - n、iter1 - iter2
- 解引用操作(Dereference and Reference):*iter、iter->member、iter[n]
- 比较操作(Comparison):iter1 < iter2、iter1 > iter2、iter1 <= iter2、iter1 >= iter2
- const支持:同时支持const和non-const迭代器。

【介绍】C++五种迭代器的更多相关文章

  1. 【Redis的那些事 · 上篇】Redis的介绍、五种数据结构演示和分布式锁

    Redis是什么 Redis,全称是Remote Dictionary Service,翻译过来就是,远程字典服务. redis属于nosql非关系型数据库.Nosql常见的数据关系,基本上是以key ...

  2. C++五种迭代器之间的关系

    迭代器操作                      说明(1)所有迭代器p++                              后置自增迭代器++p                     ...

  3. iOS五种本地缓存数据方式

    iOS五种本地缓存数据方式   iOS本地缓存数据方式有五种:前言 1.直接写文件方式:可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...

  4. 转:Windows Socket五种I/O模型

    原文转自:  Windows Socket五种I/O模型 Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模 ...

  5. Windows Socket五种I/O模型

    转载:http://www.cnblogs.com/tianzhiliang/archive/2010/08/31/1813637.html 如果你想在Windows平台上构建服务器应用,那么I/O模 ...

  6. socket编程五种模型

    客户端:创建套接字,连接服务器,然后不停的发送和接收数据. 比较容易想到的一种服务器模型就是采用一个主线程,负责监听客户端的连接请求,当接收到某个客户端的连接请求后,创建一个专门用于和该客户端通信的套 ...

  7. 五种js判断是否为整数(转)

    五种js判断是否为整数类型方式 作者:snandy 这篇文章主要介绍了五种JavaScript判断是否为整数类型方式,需要的朋友可以参考下   这篇看看如何判断为整数类型(Integer),JavaS ...

  8. RabbitMQ详解(三)------RabbitMQ的五种模式

    RabbitMQ详解(三)------RabbitMQ的五种模式 1.简单队列(模式) 上一篇文章末尾的实例给出的代码就是简单模式. 一个生产者对应一个消费者!!! pom.xml ​ 必须导入Rab ...

  9. Unix网络编程中的五种I/O模型_转

    转自:Unix网络编程中的的五种I/O模型 下面主要是把unp第六章介绍的五种I/O模型. 1. 阻塞I/O模型 例如UDP函数recvfrom的内核到应用层.应用层到内核的调用过程是这样的:首先把描 ...

  10. Windows Socket五种I/O模型——代码全攻略(转)

    Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模式.可以通过多线程技术进行处理. 非阻塞模式:执行I/O操 ...

随机推荐

  1. 关于SQLServer数据库DBCC CHECKIDENT命令

    在SQLServer输入数据时,碰到有主键ID需要维护时,可使用IDENT_CURRENT和CHECKIDENT命令来维护.   一般我们的用法如下: 1) 查看且如有必要更正当前标识值:       ...

  2. 盒子模型和CSS背景和列表

    盒子模型(1)宽度-width:长度值 | 百分比 | auto-max-width:长度值 | 百分比 | auto-min-width:长度值 | 百分比 | auto(2)高度-height:长 ...

  3. JSqlParser解析SQL时SUM包裹IF出错

    SQL SELECT SUM(IF(1=1,1,0)) AS `result` FROM sys_user 这种会报错的. 错误信息 Caused by: net.sf.jsqlparser.JSQL ...

  4. Matlab %陆

    第六章 MATLAB IN ENGINEERING Polynomial Differentiation多项式微分  %幂级数 f(x) = x^3-2x-5; p = [1 0 -2 -5]  %自 ...

  5. 基于AI边缘智能网关的工业质检应用

    成品质量检验是工业生产最后必不可少的环节,随着我国工业化的蓬勃发展,工业产品日益迈向高端化.精密化,对于工业产品的质量检验要求和投入成本也在不断提高,产品质检涉及到比以往更多维度.更多零部件.更高精度 ...

  6. restfull风格传参

  7. Iview Table 图片、超链接

    columns = [ { title: "照片", key: "attach_url", align:'center', width: 170, render ...

  8. 通过NTP池校准服务器时间

    校准方法: pool.ntp.org 是一个以时间服务器的大虚拟集群为上百万的客户端提供可靠的 易用的 网络时间协议(NTP)服务的项目 访问地址:https://www.ntppool.org/zh ...

  9. IO题目

    8-1 写入日志文件 (0 分)   编写程序,要求:用户在键盘每输入一行文本,程序将这段文本显示在控制台中.当用户输入的一行文本是"exit"(不区分大小写)时,程序将用户所有输 ...

  10. Pytorch基础复习

    项目推进中期,重新到头来学Pytorch.five落泪了.(╬▔皿▔)凸 笑死,憋不住了,边更边学. 整篇博客整体采用总分总形式.首先将介绍内容(加黑部分)之间关系进行概括,后拆解,最后以图总结. 全 ...