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