C++ 如何使用-&燃气轮机&引用;操作人员
我正试图为学校项目stl库的动态结构(特别是列表)中使用的擦除函数编写自己的代码 我想做的是循环,直到找到我想要删除的节点之前的节点C++ 如何使用-&燃气轮机&引用;操作人员,c++,C++,我正试图为学校项目stl库的动态结构(特别是列表)中使用的擦除函数编写自己的代码 我想做的是循环,直到找到我想要删除的节点之前的节点 while (loop->next!= NULL){ if (loop->next==pValue){ break; } else { loop->next; } } prev=loop; delete loop; 然后我想更新它的指针,而不是让它指向要删除的
while (loop->next!= NULL){
if (loop->next==pValue){
break;
}
else {
loop->next;
}
}
prev=loop;
delete loop;
然后我想更新它的指针,而不是让它指向要删除的节点,我想让它指向我要删除的节点之后的节点。
那么我可以这样做吗
*(prev->next)=*(pValue->next);
如果我不能,我该怎么办
这是我的函数
template <class T>
void list<T>::erase(pos pValue){
list<T>::pos prev;
list<T>::pos temp=pValue->next;
list<T>::pos loop=list<T>::first();
while (loop->next!= NULL){
if (loop->next==pValue){
break;
}
else {
loop->next;
}
}
prev=loop;
delete loop;
*(prev->next)=*(pValue->next);
delete list<T>::get(pValue);
}
模板
作废列表::擦除(pos pValue){
列表::pos prev;
列表::pos temp=pValue->next;
list::pos loop=list::first();
while(循环->下一步!=NULL){
if(循环->下一步==pValue){
打破
}
否则{
循环->下一步;
}
}
prev=循环;
删除循环;
*(上一个->下一个)=*(pValue->下一个);
删除列表::get(pValue);
}
这是我班级名单的一部分
template <class T>
class list {
node<T> *pFirst;
int n;
public:
typedef node<T> *pos;
void erase(pos pValue);
};
模板
班级名单{
节点*pFirst;
int n;
公众:
typedef节点*pos;
无效擦除(pos pValue);
};
以及节点的结构:
template <class T>
class node {
public:
T info;
node<T> *next;
};
模板
类节点{
公众:
T信息;
节点*下一步;
};
循环->下一步代码>什么都不做。也许你的意思是loop=loop->next代码>你的想法是对的。在删除current
之前,您需要prev->next
指向current->next
。拉出一张8.5x11的纸和铅笔,画出节点和指针连接,以确定哪些指针需要重新连接以及连接顺序,这通常是很有帮助的。我们也接受11x17页的纸。重要的端口是可视化列表。您的代码有两个错误<代码>循环->下一步代码>什么都不做。也许你的意思是loop=loop->next代码>你的想法是对的。在删除current
之前,您需要prev->next
指向current->next
。拉出一张8.5x11的纸和铅笔,画出节点和指针连接,以确定哪些指针需要重新连接以及连接顺序,这通常是很有帮助的。我们也接受11x17页的纸。重要的端口是可视化列表。您的代码有两个错误。