五种迭代器
分类
输入迭代器(Input Iterators): 这种迭代器用于从容器中读取数据。它只支持单向遍历,即只能向前移动(通过
++操作符)。输入迭代器只能进行一次读取,读取后迭代器就会前进到下一个元素。输出迭代器(Output Iterators): 与输入迭代器相反,输出迭代器用于向容器中写入数据。它同样只支持单向遍历,且只能进行一次写入操作,写入后迭代器会自动前进到下一个位置。
前向迭代器(Forward Iterators): 前向迭代器类似于输入和输出迭代器,但它支持多次读写操作。它也只能单向遍历,但可以对同一个元素进行多次访问。
双向迭代器(Bidirectional Iterators): 如其名,双向迭代器可以在容器中向前和向后移动。它扩展了前向迭代器的功能,使得迭代器可以使用
--操作符向前移动。双向迭代器在像list和set这样的容器中非常有用。随机访问迭代器(Random Access Iterators): 这是最强大的迭代器类型,它支持所有前面提到的迭代器的功能,并且能够进行随机访问。这意味着除了能够向前和向后移动,随机访问迭代器还能够直接跳跃到任意位置(如通过
+或-操作符)。vector和deque容器提供了随机访问迭代器。
使用
vector<vector<int>> students_marks,不存在vector<int>类型的迭代器;因此需要自己编写- 规则比较繁杂,实际算法笔试中不要考虑这种方法
自定义类型实现迭代器
五种迭代器
http://example.com/2024/09/04/CPP/五种迭代器/