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

更新于: 2019 年 7 月 30 日

361 次浏览

启动你的 职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.