const iterator 与const_iterator的区别

const iterator,即常量迭代器,如:

const vector<int>::iterator iter; //这里的iter就是常量迭代器

由于const关键字,常量迭代器被视为常量,无法更改迭代器本身(如:iter++),但是可以更改迭代器所指向的变量(如:(*iter)++)。

con s t_iterator,(找不到适合的词语解释),如:

vector<int>::const_iterator iter; //这里的iter就是const_iterator

const_iterator与常量迭代器刚好相反,不可以更改迭代器所指向的变量,但是可以更改迭代器本身。

其实,在vector的接口里有体现过这些知识,如:cbegin(), cend(),他们的返回值类型就是const_iterator。

此外,当我们将vector作为参数传入函数时,若用const进行限定,则函数内部只能使用const_iterator,而不是iterator(这里就是就是与函数的const参数的一些限制有关而已,又看到别的博客有说)。

你可能感兴趣的:(C/C++)