访问 Vector->List->(Node *)->name 中的值

Accessing Value in Vector->List->(Node *)->name

我正在实施邻接列表,我有一个 struct Node,其中有一个 string name 变量,我想 access/print。

我正在 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;

但最后一行对我不起作用。我该怎么办?

我认为最后一行可以是:

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();

itr2Node* 容器的迭代器。为了获得Node中的一个字段,你应该首先取消引用itr2,并获得Node*对象,然后你可以使用->运算符并获得该字段。所以那条线应该有效: cout << (*itr2)->name