【C++學習】迭代器

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



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