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