iterator與const_iterator


iterator與const_iterator

 

所有的標准庫容器都定義了相應的迭代器類型。迭代器對所有的容器都適用,現代 C++ 程序更傾向於使用迭代器而不是下標操作訪問容器元素。


1.iterator,const_iterator作用:遍歷容器內的元素,並訪問這些元素的值。iterator可以改元素值,但const_iterator不可改。跟C的指針有點像
(容器均可以++iter,而vector還可以iter-n, iter+n,n為一整型,iter1-iter2:結果是difference_type類型,表兩元素的距離.)


2.const_iterator 對象可以用於const vector 或非 const vector,它自身的值可以改(可以指向其他元素),但不能改寫其指向的元素值.


3.const iterator與const_iterator是不一樣的:聲明一個 const iterator時,必須初始化它。一旦被初始化后,就不能改變它的值,它一旦被初始化后,只能用它來

改它指的元素,不能使它指向其他元素。(因此const iterator幾乎沒什么用途)

     vector<int> nums(10); // nums is nonconst
     const vector<int>::iterator cit = nums.begin();
     *cit = 1;               // ok: cit can change its underlying element
     ++cit;                  // error: can't change the value of cit

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM