我对 c++ 比较陌生,在尝试创建链接列表时遇到了一个我不理解的错误。
编码:
template <typename T>
class List{
class Node{
T data;
Node<T> *next;
Node<T> *previous;
Node<T>(T& data,const Node<T> *next,const Node<T> *previous): data(data),
next(next),previous(previous){
};
};
Node<T> *head;
Node<T> *tail;
int size;
public:
class Iterator{
Node<T> *node;
List<T> *list;
};
void List<T>::remove(List<T>::Iterator& It){
if(It.list!=this){ // FIELD list COULD NOT BE RESOLVED
throw NON_MATCHING_LIST();
}
if(size==0 || It.node=tail){ //FIELD node COULD NOT BE RESOLVED
throw ELEMENT_NOT_FOUND();
}
It.node->previous=It.node->next; //FIELD node COULD NOT BE RESOLVED (and naturally the rest).
It.node->next->previous=It.node->previous
}
};
在我的删除函数中,我试图删除迭代器之前的列表成员,唉,我收到一条错误消息
无法解析节点/列表字段
我尝试将迭代器作为 Iterator& 或 Iterator 类型传递,但都没有奏效。
任何反馈将不胜感激。