条目二十六《iterator优先于const_iterator、reverse_iterator以及const_reverse_iterator》

条目二十六《iterator优先于const_iterator、reverse_iterator以及const_reverse_iterator》

这几个东西不是类型来的,而是不同的类,所以强制转换的话是不行的,所以别把C风格的强制转换类型用在这里。

它们之间存在着隐式转换。

iterator -> const_iterator
iterator -> reverse_iterator
const_iterator -> const_reverse_iterator

或者显示的

reverse_iterator -> base() -> iterator
const reverse_iterator -> base() -> const iterator (这个要注意,转换之后需要调整下偏移才行。)

注意注意,对于insert erase等函数,只能接受iterator型的迭代器作为参数,对于其他的是不行的。所以一般除了reserce需要真的用上时,在大多数时候用iterator比const iterator更优,因为可以用在任何情况,不用烦心什么函数形参之类的,而且少了一些函数调用来转换为iterator。

原文地址:https://www.cnblogs.com/liangjf/p/10634063.html

时间: 2024-08-02 00:16:42

条目二十六《iterator优先于const_iterator、reverse_iterator以及const_reverse_iterator》的相关文章

条目二十八《正确理解由reverse_iterator的base()成员函数所产生的iterator的用法》

条目二十八<正确理解由reverse_iterator的base()成员函数所产生的iterator的用法> 迭代器的种类一共有四种,上面已经说过了.这里就不再次写出来. 这一个条目主要是reserce_iterator和iterator的转换.可以使用base()函数来把前者转换为后者. 比如在拥有reserve_iterator,但需要用到插入,删除成员函数,那么这两个是不接受reserve_iterator作为参数的,所以需要转换为iterator再进行下一步的插入和删除元素. 以上代码

Powershell管理系列(二十六)PowerShell操作之批量导出&导入邮箱

-----提供AD\Exchange\Lync\Sharepoint\CRM\SC\O365等微软产品实施及外包,QQ:185426445.电话18666943750 项目中有时候做跨林邮箱迁移的时候,条件不成熟,比如安全考虑或者其他考虑,不能做双林信任,这样就提出了一个问题,历史邮件需要使用的话怎么办,一个简单高效的解决办法就是从源森林批量导出邮件为.pst文件,在批量导入到目的域森林,具体操作如下: 1.赋予管理账号邮件导入导出权限,命令如下: cls whoami New-Manageme

攻城狮在路上(叁)Linux(二十六)--- linux文件系统的特殊查看与操作

一.boot sector 与 super block的关系: 1.boot sector用于存放引导装载程序,占用1024个字节. 2.super block的大小也为1024字节. 3.若block大小为1k,则boot sector和super block各占一个block. 4.若block大于1K(2K/4K)时,则两者都位于第一个block中. 二.磁盘空间的浪费问题:暂不考虑. 三.利用GUN的parted命令进行分区行为: 因为fdisk不支持高于2TB的分区. 命令格式: pa

第一百二十六节,JavaScript,XPath操作xml节点

第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准DOM去查找XML中的节点方式,大大降低了查找难度,方便开发者使用.但是,DOM3级以前的标准并没有就XPath做出规范:直到DOM3在首次推荐到标准规范行列.大部分浏览器实现了这个标准,IE则以自己的方式实现了XPath. 一.IE中的XPath 在IE8及之前的浏览器,XPath是采用内置基于A

二十六:Struts2 和 spring整合

二十六:Struts2 和 spring整合 将项目名称为day29_02_struts2Spring下的scr目录下的Struts.xml文件拷贝到新项目的scr目录下 在新项目的WebRoot---->WEB-INF目录下新建一个目录lib,用于存放jar包(Struts2和spring整合所需jar包) 将项目名称为day29_02_struts2Spring,WebRoot---->WEB-INF下的lib目录下的所有jar包拷贝到新项目对应的位置,同时将spring的配置文件appl

企业搜索引擎开发之连接器connector(二十六)

连接器通过监视器对象DocumentSnapshotRepositoryMonitor从上文提到的仓库对象SnapshotRepository(数据库仓库为DBSnapshotRepository)中迭代获取数据 监视器类DocumentSnapshotRepositoryMonitor在其构造方法初始化相关成员变量,这些成员属性都是与数据获取及数据处理逻辑相关的对象 /** This connector instance's current traversal schedule. */ pri

【Unity 3D】学习笔记二十六:unity游戏脚本(六)

在3D游戏世界中,任何一个游戏对象在创建的时候都会附带Transform(变换)组件,并且该组件是无法删除的,也不应该删除.在unity中,Transform面板一共有3个属性: Position  (位置) Rotation(旋转) Scale(缩放) 这三个值都是用来调整游戏对象在游戏界面中的位置,状态等相关参数. Position  (位置) 任何一个游戏对象的三维坐标都保存在Vector3容器中,该容器记录对象在X轴,Y轴,Z轴的坐标.一旦Vector33容器中的坐标发生变化,那么Sce

每日算法之二十六:Substring with Concatenation of All Words

变相的字符串匹配 给定一个字符串,然后再给定一组相同长度的单词列表,要求在字符串中查找满足以下条件的起始位置: 1)从这个位置开始包含单词列表中所有的单词,且每个单词仅且必须出现一次. 2)在出现的过程中不能出现其他的干扰单词. 3)出现的位置可能有多个. 4)单词的出现顺序不做要求. 下面是一个例子: S:"barfoothefoobarman" L:"foo","bar" 位置0是出现位置,:两个单词均出现仅出现一次,且没有干扰.同样位置9也

【管理心得之二十六】职场中的“武功”

场景再现==================={放学路上}同学A:最近<天龙八部>看没?我喜欢那里的虚竹,因为他武功最高.同学B:什么呀?才不是虚竹呢,是段誉武功最高.他不仅会"六脉神剑",还会"一阳指"和"北冥神功".同学A:虚竹厉害,他有天山童姥等三人最强内力,后期又习得"降龙十八掌".同学B:这些都没有"六脉神剑"厉害.同学A:..................同学B:...... ==