请问const vector <int> ::iterator和vector <int>::const_iterator有什么不同
1个回答
展开全部
类似于指针
const vector<int>::iterator中,const是修饰的迭代器,也就是是个常迭代器,一旦初始化比如=a.begin(),再不能更改它的值,比如赋值=a.end()是不行的,递增递减操作等都不允许。
虽然类似指针,但指针是内置类型,所以编译器可以通过const的位置来判断是常指针还是指向常量的指针,而迭代器只是一个对象,所以编译器不能分辨,所以用const_iterator来取代指向常量的指针,使用它,你通过这个迭代器对迭代器所指向的内容进行改写是非法的。
ps:以后分区分准确一点,去C++区问吧。
const vector<int>::iterator中,const是修饰的迭代器,也就是是个常迭代器,一旦初始化比如=a.begin(),再不能更改它的值,比如赋值=a.end()是不行的,递增递减操作等都不允许。
虽然类似指针,但指针是内置类型,所以编译器可以通过const的位置来判断是常指针还是指向常量的指针,而迭代器只是一个对象,所以编译器不能分辨,所以用const_iterator来取代指向常量的指针,使用它,你通过这个迭代器对迭代器所指向的内容进行改写是非法的。
ps:以后分区分准确一点,去C++区问吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询