C++教程
C++控制语句
C++函数
C++数组
C++指针
C++对象
C++继承
C++多态
C++抽象
C++常用
C++ STL教程
C++迭代器
C++程序

C++ 前向迭代器

前向迭代器是双向迭代器和随机访问迭代器的组合。因此,可以说前向迭代器可用于读取和写入容器。 前向迭代器用于从容器的开头到结尾读取内容。 前向迭代器仅使用增量运算符(++)在容器的所有元素之间移动。因此,可以说前向迭代器只能向前移动。 前向迭代器是一次多遍迭代器。

在转发迭代器上执行的操作:

属性 有效表达式
它是默认可构造的。 A x;
它是可复制构造的。 A x(y);
这是可分配的副本。 y = x;
可以使用相等或不相等运算符对其进行比较。 a == b;
a!= b;
它可以递增。 a ++;
++ a;
可以将其取消引用为右值。 * a;
也可以将其取消引用为左值。 * a = t;
其中," A"是前向迭代器类型,x和y是前向迭代器类型的对象,而t是由迭代器类型对象指向的对象。
让我们看一个简单的示例:
#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
using namespace std;
template<class ForwardIterator>                                       // function template
void display(ForwardIterator first, ForwardIterator last)            // display function
{
 while(first!=last)
 {
     cout<<*first<<" ";
     first++;
 }
}
int main()
{
  vector<int> a;                          // declaration of vector.
  for(int i=1;i<=10;i++)
  {
      a.push_back(i);
  }
  display(a.begin(),a.end());                // calling display() function.
  return 0;
}
输出:
1 2 3 4 5 6 7 8 9 10

前向迭代器的功能

C++前向迭代器 等式/不等式运算符: 可以使用等式或不等式运算符比较前向迭代器。
假设" A"和" B"是两个迭代器:
A==B;           // equality operator
A!=B;            // inequality operator
解引用: 我们可以将前向迭代器解引用为右值和左值。因此,我们可以访问输出迭代器,也可以将值分配给输出迭代器。
假设" A"是迭代器," t"是整数变量:
*A = t;
  t = *A; 
可递增: 前向迭代器可以递增,但不能递减。
假设" A"是迭代器:
A++;
++A;

前向迭代器的局限性:

可递减: 前向迭代器仅在向前方向移动,因此无法递减。
假设" A"是迭代器:
A--;          // invalid
关系运算符: 前向迭代器可以与相等运算符一起使用,但是其他关系运算符不能应用于前向迭代器。
假设" A"和" B"是两个迭代器:
A==B;        // valid
A>=B;        // invalid
算术运算符: 算术运算符不能与前向迭代器一起使用。
A+2;         // invalid
A+3;         // invalid
随机访问: 前向迭代器不提供元素的随机访问。它只能遍历容器的元素。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4