iterator的使用和封个问题
这篇文章的内容还是不错的:
http://www.cnblogs.com/zhuyf87/archive/2012/12/08/2808290.html
for (vector<int>::iterator i = v.begin(); i < v.end(); i++) {cout << *i << endl; }
这个循环本身没有明显错误,存在的只是一些风格上的问题。
(1)尽量做到const正确性。如果迭代器没有用来修改vector中的元素,应该改用const_iterator。
(2)尽量使用“!=”而不是“<”来比较两个迭代器。因为“<”只对随机访问迭代器有效(例如,std::list的迭代器并不支持“<”),而“!=”对于任何迭代器都有效。所以应该把使用“!=”比较迭代器作为日常惯例。
(3)尽量使用前缀“--i”和“++i”。除非真的需要用到i原来的值。
(4)避免无谓的重复求值。本例中v.end()的返回值在整个循环中不会改变,因此应当在循环之前预先将v.end()求出来。
(5)尽量使用“\n”而不是“endl”。使用endl会迫使输出流刷新其内部缓冲区,可以在整个循环结束之后写一行刷新语句。
(6)尽量使用标准库中的copy()和for_each()来代替手写循环,这样可以使代码变得更干净简洁。
copy(v.begin(), v.end(), ostream_iterator<int>(cout, “\n”);
此外,使用copy(),前面关于!=、++、end()和endl的问题也就不用操心了。
iterator的使用和封个问题相关推荐
- 184_刘发顺_Java核心编程
Java核心编程 Java 技术栈: Java基础 Java面向对象:Java 是一种面向对象的语言,它对对象中的类.对象.继承.封装.多态.接口.包等均有很好的支持.为了简单起见,Java 只支持类 ...
- PHP+MySQL导出大量数据(Iterator yield)
开发中经常遇到这样的场景 产品汪:我要在后台做一个功能,可以导出自定义时间范围的订单信息.开发小哥二话不说,半天就把功能做完并上线了.结果,第二天一上班产品汪过来就是拍桌子:MD,我想把去年一整年的订 ...
- 2021年大数据常用语言Scala(十九):基础语法学习 iterator迭代器
目录 iterator迭代器 使用迭代器遍历集合 iterator迭代器 scala针对每一类集合都提供了一个迭代器(iterator)用来迭代访问集合 使用迭代器遍历集合 使用iterator方法可 ...
- Java Iterator 使用
学而时习之,温故而知新. 迭代器是一种模式.详细可见其设计模式,可以使得序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的.只要拿到这个对象,使用迭代器就可以遍 ...
- 2022-2028年中国芯片封测行业深度调研及投资前景预测报告(全卷)
[报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了芯片封测行业相关概述.中国芯片封测行业运行环境.分析了中国芯片封测行 ...
- Java技术——Iterator和Enumeration的不同
0. Iterator和Enumeration的不同 (1)两者的函数接口不同 Enumeration只有2个函数接口,通过Enumeration我们只能读取集合的数据,而不能对数据进行修改. Ite ...
- Rocksdb iterator 的 Forward-scan 和 Reverse-scan 的性能差异
前言 最近在读 MyRocks 存储引擎2020年的论文,因为这个存储引擎是在Rocksdb之上进行封装的,并且作为Facebook 内部MySQL的底层引擎,用来解决Innodb的空间利用率低下 和 ...
- Rocksdb Iterator实现:从DBIter 到 TwoLevelIter 的漫长链路
文章目录 1. 迭代器简单介绍 2. 迭代器用户态相关接口 3. 迭代器内部架构 4. 迭代器的入口实现 4.1 DBIter 4.2 MergingIterator 4.3 Memtable系列It ...
- Rocksdb iterator和snapshot 接口
Rocksdb提供迭代器来来访问整个db中的数据,就像STL中的迭代器功能一样,用来访问容器中的具体的数据. 访问形式以及访问接口有如下几种: 遍历所有的key-value //打开db,并初始化一个 ...
最新文章
- Caused by: java.lang.NoClassDefFoundError: org/springframework/aop/TargetSource
- error.html mp4,HTML Video error用法及代码示例
- $router VS $route
- tdk怎么设置_你真的做好网站的标题、描述、关键词(TDK)设置了吗?
- digit函数(信息学奥赛一本通-T1164)
- 自动化测试C语言程序,自动化测试程序之一自定义键盘的模拟测试程序(C语言)...
- 关于Visual Studio “当前不会命中断点.还没有为该文档加载任何符号“的解决方法
- 凤凰机器人猜成语答案_看图猜成语:一只手上拿着绳子,旁边有个起吊机
- 网易新闻 鸿蒙,网易新闻鸿蒙版下载-网易新闻 鸿蒙版v78.5-PC6鸿蒙网
- 关于Linux UDP/TCP reuseport 二三事
- 修改程序版本工具(ResHacker)使用说明20140902
- Exploiting Spatial Structure for Localizing Manipulated Image Regions
- 关于Android手机拍照预览、剪裁界面出现照片九十度旋转的问题
- Linux从入门到跑路
- 第三章 SQL命令 ALTER USER
- 关于wifi模块连接路由器远程控制的一些问题
- [转]Typora中使用Latex符号——基本操作
- 如何极速下载网页上的文件? 怎么批量下载文献
- KITTI 自动驾驶 数据集 镜像 百度网盘 百度云 下载
- 干货|认识kata-containers