const_iterator的使用

来源:互联网 发布:高级sql语句 编辑:程序博客网 时间:2024/05/29 03:51

const_iterator


C++为每种容器类型定义了一种名为const_iterator的类型,该类型只能用于读取容器内的元素,但不能改变其值。
对const_iterator类型解引用,得到的是一个指向const对象的引用。

for (vector<string>::const_iterator iter = text.begin(); iter != text.end(); ++ iter){         cout << *iter << endl; //ok: print each element in text         *iter = " ";     // error: *iter is const     }

const_iterator可以用于const或者非const容器(因为不能修改对象的值),但是const的iterator只能用于非const容器(只能修改唯一指向的值)。
const vector<int> nines(10, 9);  // cannot change elements in nines     // error: cit2 could change the element it refers to and nines is const     const vector<int>::iterator cit2 = nines.begin();     // ok: it can't change an element value, so it can be used with a const vector<int>     vector<int>::const_iterator it = nines.begin();     *it = 10; // error: *it is const     ++it;     // ok: it isn't const so we can change its value


0 0