我创建了一个指针向量
vector<Person*> *personVec = new vector<Person*>();
人包含:
getName();
getAge();
如果我尝试使用迭代器它不起作用..这是我如何使用它:
vector<Person>::iterator it;
for(it = personVec->begin() ;
it != personVec->end() ;
++it)
{
cout << it->getName() << endl;
}
我尝试了vector<Person*>::iterator it;
,但也没有运气。
感谢。
答案 0 :(得分:11)
迭代器需要与容器的类型相同:
vector<Person>::iterator it;
应该是:
vector<Person*>::iterator it;
答案 1 :(得分:4)
vector<Person*> *personVec = new vector<Person*>();
这是指向人物指针向量的指针
vector<Person>::iterator it;
for(it = personVec->begin() ; it != personVec->end() ; ++it)
{
cout << it->getName() << endl;
}
你的iter声明不正确你需要一个人指针向量
你有一个人的矢量
vector<Person*>::iterator it;
for(it = personVec->begin() ; it != personVec->end() ; ++it)
{
cout << (*it)->getName() << endl;
}
http://www.cplusplus.com/reference/std/iterator/
和