Effective_STL 学习笔记(二十六) 尽量使用 iterator 代替 const_iterator,reverse_iterator和const_reverse_iterator...
每个标准容器类都提供四种迭代器类型,对于container<T>而言:
1 iterator // 的作用相当于T*, 2 const_iterator // 相当于 const T*(也可 T const*) 3 reverse_iterator // 相当于 T* 4 const_reverse_iterator // 相当于 const T*
有些方法只接受 iterator 类型的参数
1 iterator insert( iterator position, const T& x ); 2 iterator erase ( iterator position ); 3 iterator erase ( iterator rangeBegin, iterator rangeEnd );
图片显示了从iterator到const_iterator、从iterator到reverse_iterator和从reverse_iterator到const_reverse_iterator可以进行隐式转换。
reverse_iterator 可以通过调用 base 成员函数转换为 iterator
const_reverse_iterator 可以通过 base 成员函数转换为 const_iterator
但是 const_iterator 转换得到一个 iterator,也无法从 const_reverse_iterator 得到 reverse_iterator
尽量使用 iterator 取代 const 或者 reverse 类型的迭代器:
1. insert 和 erase 的一些版本要求 iterator,如果调用这些函数就必须产生 iterator
2. 不可能把 const_iterator 隐式转换成 iterator
3. 从 reverse_iterator 转换而来的 iterator 在转换之后可能需要相应的调整
所以尽量使用 iterator 代替 const 或 reverse 类型的迭代器,可以使容器的使用更简单,更高效
转载于:https://www.cnblogs.com/kidycharon/p/10033060.html
Effective_STL 学习笔记(二十六) 尽量使用 iterator 代替 const_iterator,reverse_iterator和const_reverse_iterator...相关推荐
- JVM 学习笔记二十六、JVM监控及诊断工具-GUI篇
二十六.JVM监控及诊断工具-GUI篇 1.工具概述 使用上一张命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但他们存在下列局限: (1)无法获取方法级别的分析数据,如方法间的调用关系 ...
- Jenkins 持续集成 概念(学习笔记二十六)
持续集成:提交.测试.构建.测试.部署 前不久接触了持续集成(Continuous Integration,CI). 一.持续集成是什么 首先说说"集成"的概念.在实际的软件开发中 ...
- 立创eda学习笔记二十六:手把手教你使用立创eda的官方教程
可以通过以下办法找到教程: 1,在软件界面点帮助-使用教程 2,在网站首页-帮助-教程进入 如何使用教程: 这里是一级目录,其实对新手最有用的是前面3个部分,后面的仿真先不看. 常见问题里面不光是讲的 ...
- [傅里叶变换及其应用学习笔记] 二十六. 高维傅里叶变换的推导
高维意味着函数中有多个变量,典型的高维傅里叶应用为图像处理. 一个二维图像的亮度(灰度)可以用$f(x_1,x_2)$来表示,以lena为例,图像平面作为$x_1,x_2$平面,灰度作为$z$轴,形成 ...
- Java学习笔记二十六:Java多态中的引用类型转换
Java多态中的引用类型转换 引用类型转换: 1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换: 2.向下类型转换(强制类型转换),是大类型到小类型的转换: 3.instanceof运算 ...
- OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc
OpenCV学习笔记(十六)--CamShift研究 CamShitf算法,即Continuously Apative Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算 ...
- python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据
但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...
- python分析鸢尾花数据_python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据...
但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...
- OpenCV学习笔记(十六):直方图均衡化:equalizeHist()
OpenCV学习笔记(十六):直方图均匀化:equalizeHist() 参考博客: 直方图均衡化的数学原理 直方图匹配的数学原理 直方图均衡化广泛应用于图像增强中: 直方图均衡化处理的"中 ...
- QT学习笔记(十六):setwindowflags的属性总结
QT学习笔记(十六):setwindowflags的属性总结 此枚举类型用于为小部件指定各种窗口系统属性.它们是不常用的,但在一些情况下是必要的.其中一些标志取决于底层窗口管理器是否支持它们. 主要类 ...
最新文章
- LTE MIB 的发送周期
- MySQL全面优化,速度飞起来
- Linux通过XAMPP集成软件包搭建LAMPP环境
- openssl生成rsa密钥对和密钥格式转换
- 平衡不完全区组设计 数据分析的SAS实践
- 英特尔高级副总裁:收购McAfee是为股东考虑
- Leetcode232使用栈实现队列
- 重置忘记的mysql root密码
- python狗狗年龄换算_Python之美——一只数据狗的笔记[长期更新]
- Socket模型详解
- 疫情之下的“催化剂”:在线经济崛起 房产数字化变革加速
- 【吴恩达机器学习】学习笔记——4多元线性回归
- beego mysql增删改查_5-BeegoORM增删改查-Go语言中文社区
- talib python文档_TALib中文文档代码实现
- 视频解码测试软件,视频解码:视频解码性能测试_平板电脑评测-中关村在线
- 【电源模块】TPS54331 DCDC降压芯片设计
- 达梦数据库基础优化分享
- C++ 表达式必须含有常量值变量
- 个人项目-20组刘鼎事后诸葛亮会议
- 安装双系统/误删导致原来的引导分区中的boot丢失的解决方案
热门文章
- 计算机二级基础知识微盘,计算机二级C++基础知识(整理版).pdf
- mysql报错01427_ORA-01427问题的分析和解决
- vscode禁用 json 添加注释时的报错
- sha 2 java加密_java中的SHA2密码哈希
- gensim提取一个句子的关键词_NLP(五):关键词提取补充(语料库和向量空间)...
- spark structured stream的Update模式
- VB 更换设置桌面背景图片函数
- 数据库主从延迟导致查询不准确的解决思路
- 30多门免费课程上线,亚马逊“机器学习大学”开学了
- 大咖来信 | 轮值董事长徐直军,复盘华为AI战略出台始末