C++STL中为什么要有const_iterator
const iterator 是iterator本身是一个常量,iterator本身里面存的是指针,其指针不能改变,该指针不能指向其他位置,但是所指向的位置的元素是可以改变的。
const_iterator本质来说是另一个类。可以想象成一个指向常量元素的指针(比如const T*)也就是说,这个const_iterator里面存着的指针是可以改变的,可以++,–操作,但是,这是一个指向常量的指针,指向的元素是常量,不可改变。
任何时候只要你需要一个迭代器而其指向的内容没有修改必要时,就应该使用const_iterator
优先选择const_iterator,而非iterator