const_vector与const 的vector对象的差别

const_vector与const 的vector对象的区别

使用const_vector的类型时,我们可以得到一个迭代器,它自身的值可以改变,但不能改变其所指向元素的值,

可以对迭代器进行自增以及解引用操作符来取值,但不能对该元素赋值。

范例:

vector<string> ivec(5, "hi");

for (vector<string>::const_iterator iter = ivec.begin(); iter != ivec.end(); iter++)
{
*iter=  "sdf";       //错误,不能被赋值
}


使用const 的vector对象时,必须初始化迭代器,一旦被初始化,就不能改变他的值。

范例:

vector<string> ivec(5, "hi");

const vector<string>::iterator cs_iter = ivec.begin();
*cs_iter = "sag";
ivec++;                   //错误,一旦被初始化就不能改变他的值