Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用-&燃气轮机&引用;操作人员_C++ - Fatal编程技术网

C++ 如何使用-&燃气轮机&引用;操作人员

C++ 如何使用-&燃气轮机&引用;操作人员,c++,C++,我正试图为学校项目stl库的动态结构(特别是列表)中使用的擦除函数编写自己的代码 我想做的是循环,直到找到我想要删除的节点之前的节点 while (loop->next!= NULL){ if (loop->next==pValue){ break; } else { loop->next; } } prev=loop; delete loop; 然后我想更新它的指针,而不是让它指向要删除的

我正试图为学校项目stl库的动态结构(特别是列表)中使用的擦除函数编写自己的代码

我想做的是循环,直到找到我想要删除的节点之前的节点

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页的纸。重要的端口是可视化列表。您的代码有两个错误。