STL--const_iterator

时间:2024-02-20 10:08:49

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都加上就是迭代器变量保存的地址不能改变,地址中的值也不能改变。