不同的迭代器適用於不同的容器
在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