C++ 前向迭代器

17 Mar 2025 | 阅读 2 分钟
  • 前向迭代器 是双向迭代器和随机访问迭代器的组合。因此,我们可以说前向迭代器可用于读取和写入容器。
  • 前向迭代器 用于从容器的开头读取内容到结尾。
  • 前向迭代器 只使用递增运算符(++)来遍历容器的所有元素。因此,我们可以说前向迭代器只能向前移动。
  • 前向迭代器是多趟迭代器。

前向迭代器的操作

性质有效表达式
它可以是默认构造的。A x;
它可以是复制构造的。A x(y);
它可以是复制赋值的。y = x;
可以使用相等或不相等运算符对其进行比较。a==b;
a!=b;
它可以递增。a++;
++a;
它可以作为右值解引用。*a;
它也可以作为左值解引用。*a = t;

其中“A”是前向迭代器类型,“x”和“y”是前向迭代器类型的对象,“t”是迭代器类型对象所指向的对象。

让我们看一个简单的例子

输出

1 2 3 4 5 6 7 8 9 10

前向迭代器的特性

C++ Forward Iterator
  • 相等/不相等运算符:前向迭代器可以使用相等或不相等运算符进行比较。

假设 'A' 和 'B' 是两个迭代器

  • 解引用:我们可以将前向迭代器作为右值或左值进行解引用。因此,我们可以访问输出迭代器,也可以为输出迭代器赋值。

假设“A”是一个迭代器,“t”是一个整数变量

  • 可递增:前向迭代器可以递增,但不能递减。

假设“A”是一个迭代器

前向迭代器的限制

  • 可递减:前向迭代器不能递减,因为它只能向前移动。

假设“A”是一个迭代器

  • 关系运算符:前向迭代器可以使用相等运算符,但不能将其他关系运算符应用于前向迭代器。

假设 'A' 和 'B' 是两个迭代器

  • 算术运算符:不能将算术运算符与前向迭代器一起使用。
  • 随机访问:前向迭代器不提供元素的随机访问。它只能遍历容器中的元素。

下一主题