背景
C++ vector官方文档中,在进行遍历操作时往往使用迭代器
,而非for循环+临时计数变量count
笔者由此思考迭代器的作用,记录如下
阅读本文需要的前置知识
- 了解迭代器的语法
- 了解vector常见操作方法
正文
我们可以先想一想,不使用迭代器进行遍历操作的坏处是什么
可以想象到,我们必须定义一个计数变量,该变量需要通过某种方式获取容器中元素个数,从而实现遍历操作
因此,这种方式的最大缺点为:
必须暴露集合对象的内部
也就是说,后续接管代码的人员,必须下探容器内部逻辑,才能够对遍历操作的相关代码进行维护
因为,如果不这样做的话,将无法确定这个计数变量是囊括所有元素,抑或是只包含了其中的奇数个元素,抑或是以其他方式进行选择性计数
如果使用迭代器,代码将具有一定程度上的松耦合性,易于复用,维护时也不必下探容器内部逻辑
代码示例
#include<vector>
vector<