迭代器簡介

2021-06-12 00:15:07 字數 1123 閱讀 7179

迭代器提供了比下標操作更通用的遍歷容器雷元素的方法。其對所有的容器都適用,現代c++程式更加傾向於適用迭代器而不是下標操作。

//迭代器測試

vector::iterator begin = v3.begin(); //指向容器的第乙個元素

vector::iterator end = v3.end(); //z指向容器末端元素的下乙個————超出末端迭代器,起哨兵作用

for(vector::iterator iter = begin; iter != end; iter++)

適用const_iterator 型別時, 他自身的值可以改變,但不能用來改變它所指向的元素的值。

const_iterator 物件與const 的iterator物件:

宣告const 迭代器時,如同其他型別的const物件,必須初始化,一旦初始化後,其值就不能改變了。

const vector::iterator ci = v3.begin();

ci++; //錯誤,不可改變const 物件

const_iteraor可用於 const vector 和 非const vector ,const 迭代器幾乎沒什麼用。

2. 迭代器的算數操作

(1). iter+/-n加上或減去的值的型別應該是:vector的size_type或difference_type型別。

vector::difference_type d3 = 3;

vector::iterator it = v3.begin();

vector::iterator it_3 = it+d3;

cout<

結果為型別是difference_type的signed型別的值。表示兩個迭代器物件之間的距離,iter1和iter2 必須是指向同乙個容器。

定義容器的中間元素

vector::iterator mid = vi.begin()+vi.size()/2;

注:改變容器的長度的操作都會使已存在的迭代器實效。

迭代器簡介

迭代器iterator介面同collection map,也是j a集合框架的成員,不同於兩者的是其本身並非用來盛裝其他物件,而是用來遍歷訪問collection集合中的元素。map介面並沒有實現iterator iterator主要有以下方法 boolean hasnext 如果被迭代的集合元素還...

3 4迭代器簡介

1.每種容器型別都定義了自己的迭代器型別 vector iterator iter 2.begin 返回指向第乙個元素的迭代器 end 返回指向最後以後元素後乙個元素的迭代器 3.使用 iter對迭代器解引用 4.const iterator型別它自身可以改變.但是不能改變它指向的物件的值 5.an...

STL迭代器簡介

stl迭代器簡介 標準模板庫 the standard template library,stl 定義了五種迭代器。下面的圖表畫出了這幾種 input output forward bidirectional random access 要注意,上面這圖表並不是表明它們之間的繼承關係 而只是描述了迭...