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 次瀏覽

啟動你的 職業生涯

完成課程獲得認證

開始
廣告