STL迭代器系以指针为根据塑模出来,所以迭代器的作用就像个T *指针。声明迭代器为const就像声明指针为const一样(即声明一个T * const指针);
如果你希望迭代器所指向的内容不可被改变,你需要的是const_iterator。
-
std::vector<int> vec;
-
...
-
const std::vector<int>::iterator iter = vec.begin(); //iter像个T * const
-
*iter = 10; //没问题
-
++iter; //错误!!,iter是const
-
-
std::vector<int>::const_iterator cIter = vec.begin(); //像个const T *指针
-
*cIter = 10; //错误!!!
-
++cIter; //没问题
阅读(1250) | 评论(0) | 转发(0) |