C++ iterator遍历 以前没注意到的一个点 前置递增和后置递增
来源:互联网 发布:软件企业资质 编辑:程序博客网 时间:2024/05/17 03:10
今天看C++标准库
以前用vector 没有 注意到
书上总结
迭代器的遍历
for (vector<int>::iterator pos = m.begin(); pos != m.end(); ++pos) {cout << *pos;}
为什么用++pos而不是pos++
下面 解释了使用前置式递增preincrement的优点,它比后置式递增postincrement效率高。后者内部需要一个临时对象,因为他必须存放迭代器的原本位置并返回之
_Myiter& operator++() //前置++重载{// preincrement++*(_Mybase *)this;return (*this);}_Myiter operator++(int) //有int参数 后置++重载{// postincrement_Myiter _Tmp = *this;++*this;return (_Tmp);}后置式递增特点,在很多类运算符重载中,都需要为后置++和--在函数中定义一个临时变量,用于保存被更改之前变量的值作为返回值,然后在函数体中队变量进行相应操作。
Object a,b;
b=a++; 直观上来看,在a++中进行赋值操作前不能把a值改变, a的值赋前已经改变,只是b接受的是a改变前的副本temp当作的返回值
而前置式为先做自增自减运算,所以只需要对本身进行操作然后返回。
由于后置式多出了这一步,所以效率低。
阅读全文
0 0
- C++ iterator遍历 以前没注意到的一个点 前置递增和后置递增
- 前置递增和后置递增的区别
- 前置递增和后置递增
- C++前置式递增和后置式递增的区别
- C++ 递增运算符:前置++和后置++的区别
- 关于前置式递增和后置式递增的小知识(++x与x++)
- C++前置式递增++i和后置式递增i++的区别
- C++中前置递增运算符和后置递增运算符的区别
- 后置递增和递减
- 后置递增和递减
- C++前置式后置式递增和复合赋值操作符对程序性能
- [C++] 前置++和后置++的区别
- 实现前置与后置递增(递减)运算符的重载
- 前置(后置)递增(递减)(读书笔记)
- objecti-c中的 比较前置串和后置串, 遍历数组和字典的用法
- 为何迭代器前置式递增比后置式递增效率要高
- 游戏效率优化(1) 前置递增与后置递增区别
- 迭代器前置式递增比后置式递增效率要高
- 实验五 JPEG解码
- 银联商务MISPOS接口开发demo 需要调用POSINF.DLL
- 机器学习笔记二十三 TensorFlow
- 简单转下snowflak的介绍
- vs2010下 LNK1123: 转换到 COFF 期间失败: 文件无效或损坏的问题解决办法
- C++ iterator遍历 以前没注意到的一个点 前置递增和后置递增
- 洛谷P3371 单源最短路径
- 【bitset】POJ2443[Set Operation]题解
- BZOJ 4034 树上操作 链剖
- 关于if-else代码的优化
- HTML
- Python菜鸟笔记2—密码加密
- C++基本知识整理(1)
- 排序算法之快速排序