前置迭代器 VS. 后置迭代器
来源:互联网 发布:数据库like语句 编辑:程序博客网 时间:2024/05/17 21:59
最近做code review, 老是看到迭代器的不恰当使用,随处可见使用迭代器后置自增(自减)遍历容器。后置自增(自减)操作相对于前置自增(自减)操作而言,效率非常低下。为什么呢?下面将从汇编角度,看看两者之间的区别。
(1)后置式迭代器:
参数:this, int;
返回值:_Myt ;
操作过程:a. 先拷贝*this内容到_temp中;b. 调用前置++操作符,自增*this的内容;c. 返回_temp;
分析:从过程就可以轻易看出,后置++在前置++的基础上,至少多了步骤a和c;
(2)前置式迭代器:
参数:this;
返回值:_Myt的引用 ;
操作过程:a.直接递增;c. 返回(*this);
前置式迭代器不需要传回旧值,所以不需要花费一个临时对象来保存旧值。因此,面对任何迭代器(以及任何抽象数据型别),应该优先使用前置式。这条规则对递减操作也同样适用。
0 0
- 前置迭代器 VS. 后置迭代器
- 后置前置++--
- 项目二对象前置++,前置--;后置++,后置--
- 为何迭代器前置式递增比后置式递增效率要高
- 迭代器前置式递增比后置式递增效率要高
- 前置++与后置++
- 前置运算 后置运算
- 关于前置++和后置++
- ++前置和后置
- Java - 前置++和后置++
- 前置及后置++_--
- 前置++与后置++重载
- 前置摄像头、后置摄像头
- 易错题之前置++后置++
- 前置和后置++
- 前置++和后置++重载
- C++运算符前置后置
- 前置++与后置++(转载)
- discuz的QQ互联的开启
- Oracle迁移到DB2的策略及最佳案例
- contacts模块功能分析(较全面)
- Sublime Text 2中运行Python没有反应的问题
- 自写strcpy函数
- 前置迭代器 VS. 后置迭代器
- 将一个字符串逆序输出
- LIB和DLL的区别与使用
- 将一个整型变量转换为字符串
- vi的基本命令(入门级)
- android之下载google.code
- DB2和 Oracle的并发控制(锁)比较
- 编程思想-初探
- struct和typedef struct