我正在实施邻接列表,并且我有一个struct Node
,其中包含我要访问/打印的string name
变量。
我在main function
编写此代码:
vector <list<Node*>> mylist(NP);
vector <list<Node*>>::iterator itr = mylist.begin();
int i=0;
while(i<NP)
{
Node *temp = new Node();
fin>>temp->name;
itr->push_back(temp);
itr++;
i++;
}
itr = mylist.begin();
list<Node*>::iterator itr2 = itr->begin();
cout<<itr2->name;
但最后一行不适合我。我该怎么办?
答案 0 :(得分:0)
我认为最后一行可能是:
vector <list<Node*>> mylist(NP);
vector <list<Node*>>::iterator itr = mylist.begin();
int i=0;
while(i<NP)
{
Node *temp = new Node();
fin>>temp->name;
itr->push_back(temp);
itr++;
i++;
}
itr = mylist.begin();
list<Node*>::iterator itr2 = itr->begin();
cout<<(*itr2)->name.c_str();
答案 1 :(得分:0)
itr2
是Node*
s容器的迭代器。要在Node
中获取字段,您应首先取消引用itr2
,然后获取Node*
对象,然后您可以使用->
运算符并获取字段。这条线应该工作:
cout << (*itr2)->name