我是 C++ 的新手,对这个指针和东西感到头疼!
我需要遍历链表的结构列表,读取结构的数据并弹出该条目!
这是我的结构:
struct node {
map<string,double> candidates;
double pathCost;
string source;
node *next; // the reference to the next node
};
通过阅读这篇文章,我创建了我的列表,例如:
list<node*> nodeKeeper;
然后初始化第一个值:
node *head;
head= new node;
head->pathCost = 0.0;
head->source="head";
head->next = NULL;
细填充列表和结构:
for(unsigned int i = 0; i < sourceSentence.size(); i++){
node *newNode= new node; //create a temporary node
//DO STUFF HERE
//push currunt node to stack
nodeKeeper.push_back(newNode);
head = newNode;
}
现在我有结构列表,我想遍历它并弹出元素:
for (list<node*>::const_iterator it=nodeKeeper.begin();it!=nodeKeeper.end();it++){
it->pop_front();
}
这给了我这个错误:
错误:在'* it.std::_List_const_iterator<_Tp>::operator->()'中请求成员'pop_front',它是指针类型'node* const'(也许你打算使用'->'? ) make: *** [main3.o] 错误 1
看起来我的迭代器指向列表内部,而不是列表本身!
你能告诉我这里有什么问题吗?!