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

时间:2015-02-28 05:53:39

标签: c++ data-structures

我正在实施邻接列表,并且我有一个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;

但最后一行不适合我。我该怎么办?

2 个答案:

答案 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)

itr2Node* s容器的迭代器。要在Node中获取字段,您应首先取消引用itr2,然后获取Node*对象,然后您可以使用->运算符并获取字段。这条线应该工作: cout << (*itr2)->name