const_iterator的本质
const int* p; -----常量指针
int* const p; -----指针常量
const std::vector<int>::iterator iter=v.begin(); ---常量迭代器
std::vector<int>::const_iterator iter=v.begin(); ---迭代器常量
容器迭代器的实现本质上就是保存容器元素的地址,也就是迭代器对象保存的值是地址。
那么常量迭代器的值(也就是迭代器保存的地址)不可以改变,但是不影响地址中的值的改变,地址中的值依然是可以改变的。
迭代器常量用于实现对迭代器保存的地址中的值不可改变的效果。
但是迭代器变本身保存的值,也就是元素的地址是可以改变的。
两个cons都加上就是迭代器变量保存的地址不能改变,地址中的值也不能改变。