C++ 前向迭代器
前向迭代器是什么?
前向迭代器是C++ STL迭代器层次结构中的一种基本迭代器类型,它允许我们单向遍历容器中的元素。与输入迭代器不同,前向迭代器可以多次读取同一个元素,并且它支持多遍算法。想象一下,前向迭代器就像是一个只能向前行走的指针,不能后退。
备注
前向迭代器在STL迭代器分类中位于输入迭代器和双向迭代器之间,提供比输入迭代器更强的功能,但比双向迭代器功能弱一些。
前向迭代器的特性
- 单向移动:只能使用
++
运算符向前移动 - 可解引用:可以使用
*
操作符访问元素值 - 可比较:可以用
==
和!=
比较两个迭代器 - 多遍访问:可以多次遍历相同的元素序列
- 可默认构造:支持默认构造函数
前向迭代器支持的操作
下面是前向迭代器支持的基本操作:
ForwardIterator it; // 默认构造
ForwardIterator it2(it); // 复制构造
it = it2; // 赋值
*it // 解引用,访问元素
it->member // 访问元素的成员(等同于(*it).member)
++it // 前置递增
it++ // 后置递增
it == it2 // 相等比较
it != it2 // 不等比较
使用前向迭代器的容器
在STL中,以下容器提供了前向迭代器:
forward_list
- 单向链表unordered_set
- 无序集合unordered_multiset
- 无序多重集合unordered_map
- 无序映射unordered_multimap
- 无序多重映射