1、概述
迭代器(iterator)是一種檢查容器內元素並遍歷元素的數據類型。
2、定義
1)容器的iterator類型
根據容器的類型定義迭代器
e.g.
vector<int>::iterator iter;
2)begin和end操作
用於返回迭代器。
- begin
返回的迭代器指向第一個元素
vector<int>::iterator iter=ivec.begin()
- end
返回的迭代器指向vector的“末端元素的下一個”,稱爲超出末端迭代器。指向了一個不存在的元素。
若容器爲空,則begin和end返回的迭代器相同。
3)vector迭代器的自增
++iter;
把容器中的迭代器“向前移動一個位置”.
4)解引用運算
使用解引用操作符(*操作符)來訪問迭代器指向的元素。
*iter=0;//將元素賦值爲0
E.g利用迭代器編寫循環
for(vector<int>::size_type ix=0;ix!=ivec.size();++ix;
ivec[ix]=0;
for(vetor<int>::iterator iter=ivec.begin();iter!=ievc.end();++iter;
*iter=0;
3、const_iterator
只用於讀取容器內的元素,但不能改變值。
E.g.
for(vector<string>::const_iterator iter=text.begin();iter!=text.end();++iter)
cout<<*iter<<endl;
//error
for(vector<string>::const_iterator iter=text.begin();iter!=text.end();++iter)
*iter=" ";//error
注意:const_iterator不同於const的iterator對象,聲明一個const迭代器,必須初始化,初始化後值不能改變。vector<int> nums(10);
const vecotr<int>::iterator cit=nums.begin();
*cit=1;//ok
++cit;//error