我尝试使用以下struct
声明编写程序:
struct N
{
int value;
N Left;
N Right;
};
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我的程序中会有无数个结构.我仍然希望我的左派和右派拥有与N完全相同的结构.有没有办法做到这一点?
要构建树状结构,您可以使用指针:
struct N {
int value;
N *left;
N *right;
};
Run Code Online (Sandbox Code Playgroud)
您也可以使用参考:
struct N {
int value;
N &left;
N &right;
};
Run Code Online (Sandbox Code Playgroud)
但是这样你就需要仔细地绑定没有任何一个分支(或两者)的元素中的引用.
或其他类型的indirecting: ,,unique_ptr
等.shared_ptr
reference_wrapper
此外,您可以拥有一大堆儿童参考:
struct N {
int value;
std::vector<std::reference_wrapper<N>> branches;
};
Run Code Online (Sandbox Code Playgroud)