c++ - C++中的嵌套结构
问题描述
我试图用以下struct
声明编写一个程序:
struct N
{
int value;
N Left;
N Right;
};
如果可能的话,我的程序中将有无限数量的结构。我仍然希望我的左右具有与N完全相同的结构。有没有办法做到这一点?
解决方案
要构建树状结构,您可以使用指针:
struct N {
int value;
N *left;
N *right;
};
您还可以使用参考:
struct N {
int value;
N &left;
N &right;
};
但是这样你需要小心地绑定没有任何一个分支(或两者都有)的元素中的引用。
或其他间接类型:unique_ptr
, shared_ptr
, reference_wrapper
, 等。
此外,您可以拥有一大堆子引用:
struct N {
int value;
std::vector<std::reference_wrapper<N>> branches;
};
推荐阅读
- sql - SQL Server Select Parent-Child + COALESCE ( Join )
- c++ - 检查格式字符串是否与字符串匹配?
- scala - 在数据框 (Spark) 中选择列时在其间添加一个空列
- java - 使用 XYSplineRenderer 代替折线图
- php - 导入后会一直出现找不到接口错误
- go - 有没有办法在使用 `os` 模块保留 `atime` 的同时设置 `mtime`?
- android - proguard-rules.pro 未使用
- angular - 子表单组件的多重验证
- stata - foreach - 循环遍历特定的观察值以获得特定的输出
- html - 如何从 Angular 7 的组件列表中预先选择默认项