相关疑难解决方法(0)

如何在安全的Rust中表达相互递归的数据结构?

我正在尝试在Rust中实现类似scenegraph的数据结构.我想在安全 Rust中表示这个C++代码的等价物:

struct Node
{
    Node* parent; // should be mutable, and nullable (no parent)
    std::vector<Node*> child;

    virtual ~Node() 
    { 
        for(auto it = child.begin(); it != child.end(); ++it)
        {
            delete *it;
        }
    }

    void addNode(Node* newNode)
    {
        if (newNode->parent)
        {
            newNode->parent.child.erase(newNode->parent.child.find(newNode));
        }
        newNode->parent = this;
        child.push_back(newNode);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要的属性:

  • 父母拥有其子女的所有权
  • 可以通过某种参考从外部访问节点
  • 触摸一个事件的事件Node可能会改变整个树

rust data-structures

23
推荐指数
3
解决办法
4415
查看次数

标签 统计

data-structures ×1

rust ×1