我尝试用以下 struct
声明编写一个程序:
struct N
{
int value;
N Left;
N Right;
};
如果可能的话,我的程序中就会有无限多的结构体。我仍然希望我的 Left 和 Right 具有与 N 完全相同的结构。有没有办法做到这一点?
最佳答案
要构建树状结构,您可以使用指针:
struct N {
int value;
N *left;
N *right;
};
您还可以使用引用:
struct N {
int value;
N &left;
N &right;
};
但是通过这种方式,您需要在没有任何一个分支(或两者)的元素中小心地绑定(bind)引用
或其他间接类型:unique_ptr
、shared_ptr
、reference_wrapper
等
此外,您可以拥有一大堆子引用:
struct N {
int value;
std::vector<std::reference_wrapper<N>> branches;
};
关于c++ - C++ 中的嵌套结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51895017/