我可以获得指针所属的unique_ptr(如果有)吗?

Dav*_*var 0 c++ pointers this unique-ptr

我正在构建一个Node类,其中左侧和右侧子节点具有unique_ptr,父节点具有Node*指针.当我删除节点时,我接受节点,我必须检查我正在删除的节点是否是左子节点,然后重置父节点中的unique_ptr.有没有办法获取指针,并询问是否有任何unique_ptr包装,并可能返回它?

eer*_*ika 5

有没有办法获取指针,并询问是否有任何unique_ptr包装,并可能返回它?

有没有通用的方法找到unique_ptr,但你可以例如存储参考.

假设你的树是二进制的,你可以unique_ptr像这样找到父母:

(parent->left == this ? parent->left : parent->right).release();
Run Code Online (Sandbox Code Playgroud)

如果树不是二进制,则可以遍历所有子项.