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

C++中CONST迭代器 和 CONST_ITERATOR的區別

編輯:C++入門知識

話說這兩個區別非常大,但是不太好理解啊,而且感覺解釋也是各種繞口。說一下我自己的理解吧。
    const迭代器,顧名思義,就是不能改變的迭代器,是常量,其性質是由const決定的。比如說我們這樣定義一個const迭代器。
vector<int> vv(10,9); 
const vector<int> :: iterator iter = vv.begin(); 
則,當程序中出現這樣的語句時是錯誤的
++iter; 
其原因是iter是一個常量,因此是不能改變的。換句話說,iter只能指向vv的地一個元素,不能指向其他的元素。
但是這樣的語句是正確的:
×iter = 10; 
因為雖然iter不能指向其他的元素,但是其指向的第一個元素的值是可以改變的。
而對於const_iterator來說的話,正好相反。比如我們這樣定義
vector<int> vv(10,9); 
vector<int> :: const_iterator iter; 
即定義了一個const_iterator迭代器。這個迭代器是可以自己增加的,但是其所指向的元素是不可以被改變的。比如說
for(iter = vv.begin(); iter != vv.end(); ++iter){ 
    cout << *iter << endl; 

這樣是正確的,即iter本身的值是可以改變的。但是
for(iter = vv.begin(); iter != vv.end(); ++ iter){ 
   *iter = 0;

這樣是不對的,因為const_iterator迭代器是不能改變其所指向的元素的值的。

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