转自:https://blog.csdn.net/wmn_wmn/article/details/8144151
话说这两个区别非常大,但是不太好理解啊,而且感觉解释也是各种绕口。说一下我自己的理解吧。
const迭代器,顾名思义,就是不能改变的迭代器,是常量,其性质是由const决定的。比如说我们这样定义一个const迭代器。
- vector<int> vv(10,9);
- const vector<int> :: iterator iter = vv.begin();
- ++iter;
但是这样的语句是正确的:
- ×iter = 10;
而对于const_iterator来说的话,正好相反。比如我们这样定义
- vector<int> vv(10,9);
- vector<int> :: const_iterator iter;
- for(iter = vv.begin(); iter != vv.end(); ++iter){
- cout << *iter << endl;
- }
- for(iter = vv.begin(); iter != vv.end(); ++ iter){
- *iter = 0;
- }