迭代器的分類

不同的迭代器適用於不同的容器

在c++中有兩種不同的迭代器分法:

按操作分五類:

輸入迭代器:

(相當於讀取)取出其指向的值,訪問下一個元素,判斷是否到達下一個元素,可以複製:*p(讀取), ++p, p++; p != q, p == q

輸出迭代器:

(相當於輸出),*p(可以修改)*p, p++, ++p, p != q, p == q

向前迭代器:

輸入迭代器和輸出迭代器的結合, *p既可以讀取元素, 也可以修改元素

雙向迭代器:

在向前迭代器的基礎上更進一步, 支持p–, –p; 所以雙向迭代器支持的操作有:*p, ++p, p++, p != q, p == q, p–, –p;

隨機存取迭代器:

在雙向迭代器的基礎上, 允許隨機訪問序列的任意值;特點:支持算術運算和隨機訪問(類似數組類型), 支持符合運算

按對象分兩類:

const_iterator:

指向常容器的迭代器,自身是一個變量,但是指向的值不能改變

const iterator:

指向容器的常迭代器, 自身是一個常量,一旦複製,不能改變它的指向。


all

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章