2.const_iterator 对象可以用于const vector 或非 const vector,它自身的值可以改(可以指向其他元素),但不能改写其指向的元素值. 3.const iterator与const_iterator是不一样的:声明一个 const iterator时,必须初始化它。一旦被初始化后,就不能改变它的值,它一旦被初始化后,只能用它来 改它指的元素,不能使它...
Const_Iterator(常量迭代器) 与迭代器不同,常量迭代器(Const_Iterator)不允许我们修改容器中的元素。它只能用于读取元素的值,而无法对其进行修改。这种迭代器类型通常在需要保证容器内容不被修改的情况下使用,例如在遍历一个常量容器或需要保证数据不被篡改的场景中。 Const Iterator(常量指针迭代器) 常量指针迭代器(Co...
对于container<T>而言,iterator的作用相当于T*,而const_iterator则相当于const T*(与T const* 意思一样)。增加一个iterator或者const_iterator可以在一个从容器开头向尾部的遍历中让你移动到容器的下一个元素。reverse_iterator与const_reverse_iterator同样相当于对应的T*和const T*,所不同的是,增加reverse_iterator...
2.const_iterator 对象可以用于const vector 或非 const vector,它自身的值可以改(可以指向其他元素),但不能改写其指向的元素值. 3.const iterator与const_iterator是不一样的:声明一个 const iterator时,必须初始化它。一旦被初始化后,就不能改变它的值,它一旦被初始化后,只能用它来 改它指的元素,不能使它...
对于container<T> 而言,iterator 的作用相当于T* ,而const_iterator 则相当于const T* (你可能也见过T const* 这样的写法:它们意思一样[ )。增加一个iterator 或者const_iterator 可以在一个从容器开头趋向尾部的遍历中让你移动到容器的下一个元素。reverse_iterator 与const_reverse_iterator 同样相当于对应的T*...
const_iterator 是迭代器的一个特例,它只能访问已经存在的元素,不能进行元素新增、删除等操作。使用 const_iterator 可以避免修改集合中元素的操作,保证集合的内容不被意外地修改。 在获取 const_iterator 时,可以通过迭代器的 begin() 和 end() 函数获取。其中,begin() 返回一个 const_iterator,它指向集合的第一...
STLconst_iterator等价于指向常量的指针(pointer-to-const)。它们都指向不能被修改的值。标准实践是能加上const就加上,这也指示我们需要一个迭代器时只要没必要修改迭代器指向的值,就应当使用const_iterator。 但是在C++98中,标准库对const_iterator的支持不是很完整。
当你费劲地获得了const_iterator,事情可能会变得更糟,因为C++98中,插入操作(以及删除操作)的位置只能...
前面的vector::iterator可以用来改变元素的值,每个容器还定义了一种只能读取元素但不能改变值得iterator类型:const_iterator。 跟普通的iterator类型的区别在于:普通iterator类型解引用时得到的是非const引用,而const_iterator解引用时,得到的是const引用。 for(vector<int>::const_iterator iter=intv.begin();iter!=in...
cbegin 和 cend 分别表示常量的 begin 和 cend 。不论 vector 、string 对象本身是否是常量,返回值都是 const_iterator 。 解引用迭代器可获得迭代器所指的对象,如果对象的类型恰好是类,就有可能希望进一步访问它的成员。 复习: . 点运算符用来表达我们需要“名为xxx的对象的xxxx成员” ...