C ++中的双向迭代器

在这里,我们将看到C ++中双向迭代器的概念。

  • 双向迭代器支持正向迭代器的所有功能,还支持前缀和后缀减量运算符。

  • 这种类型的迭代器可以在两个方向上访问元素,例如朝着结束和朝着开始。

  • 随机访问迭代器也是双向迭代器的一种。

  • 双向迭代器具有正向迭代器的功能,但是唯一的区别是该迭代器也可以递减。

双向迭代器具有一些属性。这些如下。

属性表达
双向迭代器是默认可构造的,可复制分配的并且也是可破坏的A p
A q(p)
 q = p
我们可以使用相等和不相等运算符比较它们p == q
 p!= q
可以取消引用。我们可以使用解引用运算符(*)来获取值。* p
可变迭代器可以取消引用为左值* p = t
我们可以使用增量运算符(++)和减量运算符(-)进行递增或递减p ++
 q--

范例程式码

#include <iostream>
#include<iterator>
#include<vector>
using namespace std;
int main() {
   vector<int> vec{10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
   vector<int> ::iterator it;
   vector<int> :: reverse_iterator rev_it;
   for(it = vec.begin(); it != vec.end(); it++)
      cout<<*it<<" ";
      cout<< endl;
   for(rev_it = vec.rbegin(); rev_it!= vec.rend(); rev_it++)
      cout<<*rev_it<<" ";
}

输出结果

10 20 30 40 50 60 70 80 90 100
100 90 80 70 60 50 40 30 20 10