gpt4 book ai didi

C++删除成员函数中的临时节点?

转载 作者:行者123 更新时间:2023-11-28 05:57:44 27 4
gpt4 key购买 nike

我正在实现一个 Set 类,并且有一个成员函数,具有讽刺意味的是称为 member,如果传递的值在集合中,它返回 true,否则返回 false。我的问题是,如果我正在创建一个临时节点来遍历以搜索此值,我是否需要在完成此临时节点以将内存返回到堆时删除它,因为它不是从返回的功能?

在此类中,节点作为私有(private)结构嵌入到类 Set 中,如下所示:

private:
//Precondition: linked list is sorted in ascending order
struct Node {
int value;
Node* link;
};
Node* list;
static Node* cons(int x, Node *p);

我指的函数是:

bool Set::member(int x) const {
if(list == nullptr)
return false;

Node* tempNode = list;

while(tempNode != nullptr) {
if(tempNode->value > x)
return false;
if(tempNode->value == x)
return true;
tempNode = tempNode->link;
}
return false;
}

最佳答案

tempNode 只是一个带有 automatic storage duration 的非静态局部变量;它的范围仅限于函数的开始和结束。当函数返回时,它会自动释放

关于C++删除成员函数中的临时节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33835086/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com