const iterator与const_iterator的区别

  1. const iterator相当于指针常量。即,指针本身为常量,指针自身不可修改,不能指向其他的元素,但指向内容可修改。
  2. const_iterator相当于常量指针。即,指针指向的内容为常量,指针本身可修改,指向其他的元素,但指向内容不可修改。

举例如下:

#include 
#include 

int main()
{
	std::vector v{1,3,5,7,9};

	const std::vector::iterator iter_const = v.begin();
	
	iter_const++;   // 错误: iter_const 相当于 int* const 类型,自身不可修改
	
	*iter_const = 50; // 正确: 指向的内容可修改

	std::vector::const_iterator const_iter = v.begin();
	
	*const_iter = 50;   // 错误: const_iter相当于 const int * 类型,指向内容不可修改
	
	++const_iter;       // 正确: 自身可修改

	return 0;
}

 

你可能感兴趣的:(c++11/14,C++,const_iterator,const,iterator)