gpt4 book ai didi

c++ - 如何在C++中创建指针数组

转载 作者:行者123 更新时间:2023-11-30 03:06:31 25 4
gpt4 key购买 nike

在类 Node 中:

class Node {
public:
int data;
int numchild;
Node** nodelist;

Node(int data, int s);
};

我想要一个指向其他节点的指针数组 (nodelist),这些节点具有来自该节点的边。

以下构造此类数组的方法(以及上述声明它的方法)是否是正确且最好(或最简单)的方法?如果不是,为什么以及最好的方法是什么?

Node::Node(int d, int s) {
data = d;
numchild = s;
nodelist = new Node*[s];
}

最佳答案

通常您不应该重新发明轮子。原始数组几乎总是错误的方法。查看来自 STL 的各种容器,即 std::vectorstd::list。我猜想在您的情况下,std::vector 可能是最佳解决方案。

如果您想坚持使用原始数组,快速警告:new Node*[s] 不会初始化数组,因此内容将是未定义的。但是,如果您添加一组括号 (new Node*[s]()),它将被初始化为零,这是一件好事,因为它可以帮助您发现哪些条目已经被填充。​​

此外,您当前的代码缺少用于再次delete[] 节点列表的析构函数。这正是推荐使用标准容器的原因:它们具有可以为您完成工作的析构函数。

关于c++ - 如何在C++中创建指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498039/

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