程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> VC++ 迭代器 iterator, const_iterator, const iterator,iterator迭代器

VC++ 迭代器 iterator, const_iterator, const iterator,iterator迭代器

編輯:C++入門知識

VC++ 迭代器 iterator, const_iterator, const iterator,iterator迭代器


迭代器 iterator, const_iterator, const iterator

迭代器iterator的作用類似於指針。

(1)iterator只有針對制定<類型>的容器才有效。例如:

 

vector<int> vec;

vector<int>::iterator itr;

 

對於vec來說,itr.begin()指向的是vec的第一個元素。Itr.end()指向的是vec的最後一個元素的下一個元素(作為哨兵,實際不存在)。可用itr.begin() == itr.end()來判斷容器是否為空。

像指針一樣,itr可以++,*itr表示解引用,即表示容器內被itr指向的元素。

(2)const_iterator為一種迭代器,這種迭代器可以讀取其指向的內容,也可以自增,但是不可以對其指向的內容進行“寫“操作。

例如:

vector<int>::const_iterator constItr = vec.begin();

cout<< *constItr << endl; //正確

constItr++;//正確

*constItr = 10;//錯誤!

 

 

另外,由於const_iterator只可讀取其指向的內容,所以可以用const_iterator作為const 的 容器的迭代器。

(3)容易混淆的 由const 修飾符修飾的iterator

其幾乎無作用。

與普通的iterator一樣,其可以解引用,並可以修改其指向的內容。但迭代器本身不可被修改,因為它由const修飾。

所以該iterator不能自增,其只能為第一次賦予的值,故並無明顯的作用。

P.S:合法的指針運算:

 

  • 相同類型指針之間的賦值運算
  • 指針同整數之間的加減法運算
  • 相同類型指針之間的減法和比較運算
  • 將指針賦值為0 或 指針與0之間的比較運算

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved