gpt4 book ai didi

c++ - 具有自己成员的成员 Vector 的类

转载 作者:行者123 更新时间:2023-11-30 03:38:51 26 4
gpt4 key购买 nike

我正在尝试编写一个神经网络。我以前用其他语言做过,并使用矩阵库;但是,我想自己制作,以便更好地理解它们。但是我的类(class)遇到了问题。

我正在用 C++ 执行此操作。

我有一个名为 ANN 的类(class)。它有一个层 vector 。层是一个名为 Node 的类。然而,在节点内我想访问上一层节点,所以我可以计算这个节点的值。

我知道如果我有一个类,我希望它的一个成员是它自己,它必须是一个指针。例如。

class Node{
public:
// Public methods/members here
private:
Node *previousNode;
}

然而,这不是我想要的。我希望 *previousNode 成为节点的祖先

这是我想要的例子

class Node{
public:
//Public functions/members here
private:
vector <Node*> previousLayer;
}

现在我听说在这种情况下使用智能指针会更好。我不完全知道那是什么,我知道它基本上是管理它们的指针的包装器。我还认为使用智能指针的主要原因是因为一些指针在使用后保留为 NULL 或未删除,但我认为这并不重要,因为此类的范围只能在程序结束时结束。

我的问题是如何实现指向 vector 所在类的指针 vector 。

最佳答案

如果我正确地解释了你的问题,听起来你希望 Node 的每个实例都包含指向它所连接的其他 Node 对象的指针列表.

你写的很好,但正如你所说,使用 std::shared_ptr 可以使代码更安全。

class Node{
public:
//Public functions/members here
private:
vector <shared_ptr<Node>> previousLayer;
}

您应该使用 std::make_shared 分配您的节点,只要它们被使用,它们就会一直存在于内存中(不需要 newdelete 。)

关于c++ - 具有自己成员的成员 Vector 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39239782/

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