【介绍】C++五种迭代器
目录
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++五种迭代器的更多相关文章
- 【Redis的那些事 · 上篇】Redis的介绍、五种数据结构演示和分布式锁
Redis是什么 Redis,全称是Remote Dictionary Service,翻译过来就是,远程字典服务. redis属于nosql非关系型数据库.Nosql常见的数据关系,基本上是以key ...
- C++五种迭代器之间的关系
迭代器操作 说明(1)所有迭代器p++ 后置自增迭代器++p ...
- iOS五种本地缓存数据方式
iOS五种本地缓存数据方式 iOS本地缓存数据方式有五种:前言 1.直接写文件方式:可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...
- 转:Windows Socket五种I/O模型
原文转自: Windows Socket五种I/O模型 Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模 ...
- Windows Socket五种I/O模型
转载:http://www.cnblogs.com/tianzhiliang/archive/2010/08/31/1813637.html 如果你想在Windows平台上构建服务器应用,那么I/O模 ...
- socket编程五种模型
客户端:创建套接字,连接服务器,然后不停的发送和接收数据. 比较容易想到的一种服务器模型就是采用一个主线程,负责监听客户端的连接请求,当接收到某个客户端的连接请求后,创建一个专门用于和该客户端通信的套 ...
- 五种js判断是否为整数(转)
五种js判断是否为整数类型方式 作者:snandy 这篇文章主要介绍了五种JavaScript判断是否为整数类型方式,需要的朋友可以参考下 这篇看看如何判断为整数类型(Integer),JavaS ...
- RabbitMQ详解(三)------RabbitMQ的五种模式
RabbitMQ详解(三)------RabbitMQ的五种模式 1.简单队列(模式) 上一篇文章末尾的实例给出的代码就是简单模式. 一个生产者对应一个消费者!!! pom.xml 必须导入Rab ...
- Unix网络编程中的五种I/O模型_转
转自:Unix网络编程中的的五种I/O模型 下面主要是把unp第六章介绍的五种I/O模型. 1. 阻塞I/O模型 例如UDP函数recvfrom的内核到应用层.应用层到内核的调用过程是这样的:首先把描 ...
- Windows Socket五种I/O模型——代码全攻略(转)
Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模式.可以通过多线程技术进行处理. 非阻塞模式:执行I/O操 ...
随机推荐
- python C# DES 加密转换
import time import base64 import pyDes import binascii def DESEncrypt(desKey, target): key = desKey[ ...
- pip install keras==2.0.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install keras==2.0.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
- 持续集成环境(2)-Jenkins插件管理
Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用.例如从Gitlab拉取代码,使用 Maven构建项目等功能需要依靠插件完成.接下来演示如何下载插件. 修改Jenkins插件下载 ...
- 遇到 https://packetlife.net/
"I have never let my schooling interfere with my education." --Mark Twain
- 行转列 && 字段拆分
explode称之为Hive爆炸函数,意思就是将一行数据炸开.Usage:explode(array/map) explode函数传递的参数必须是一个array或者是map hivescala> ...
- Javaweb基础知识复习------AJAX
AJAX相关知识复习 简而言之,就是可以用AJAX+HTML代替JSP页面,也可以进行异步交互,更新部分界面 Ajax案例 后端代码就是一个servlet文件,前端页面的代码也不是很常用,可以在下面这 ...
- 【公式编辑测试】生成函数常用性质及其他(普通生成函数指数生成函数Dirichlet生成函数)
目录 定义 普通生成函数OGF 指数生成函数 EGF Dirichlet生成函数 Notation OGF OGF property some OGF instances EGF EGF proper ...
- 在echaerts中渲染50万条数据的优化方案
背景:项目需求中要在页面上渲染大约50万条左右的波形数据图表 那么如何解决渲染中的卡顿呢? 肯定是要从服务端和前端一起优化这是毋庸置疑的. 1.服务端: 服务端耗时最多的一定是在数据库的筛选数据的行为 ...
- java异常--基础内容
java异常--基础内容 异常指程序运行中出现的不期而至的各种状况:文件找不到,网络连接失败,非法参数... 异常发生在程序运行期间,他影响了正常的程序执行流程. 三种类型异常(Exception): ...
- Windows7系统显存只有4GB
Windows7安装后,专用视屏内存只有4GB可用,是不是Windows7不支持4G以上显存的显卡呢?之前在网上有人说,虽然系统显示可用只有4G显存,但是游戏内实际可以超过4G.本人没有特地去试验过. ...