我的例子如下。我发现问题出在函数 void 测试参数中的“const”。我不知道为什么编译器不允许。有人能告诉我吗?谢谢。
vector<int> p;
void test(const vector<int> &blah)
{
vector<int>::iterator it;
for (it=blah.begin(); it!=blah.end(); it++)
{
cout<<*it<<" ";
}
}
int main()
{
p.push_back(1);
p.push_back(2);
p.push_back(3);
test(p);
return 0;
}
最佳答案
iterator
被定义为返回对包含对象的引用。如果允许的话,这会破坏 vector 的常量性。请改用 const_iterator
。
关于c++ - 为什么我不能使用迭代器访问 const vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2791870/