我有以下 for 循环,它遍历一个通过引用传递给 const 的向量
void PrintVector(const vector<string>& myVector) {
for(vector<string>::iterator itr = myVector.begin(); itr != myVector.end(); ++itr)
someFunctionThatTakesAPassByReferenceToConstParameter(itr);
}
迭代器itr
作为对 const 的引用传递给函数someFunctionThatTakesAPassByReferenceToConstParameter()
。因此,可以保证此函数不会更改迭代器对象。即使这是有保证的,为什么代码不能编译?
编辑:我知道我可以使用 const_iterator。但我想知道为什么这不能编译。