c++ - C++ 中的嵌套结构

标签 c++ struct

我尝试用以下 struct 声明编写一个程序:

struct N
{
    int value;
    N Left;
    N Right;
};

如果可能的话,我的程序中就会有无限多的结构体。我仍然希望我的 LeftRight 具有与 N 完全相同的结构。有没有办法做到这一点?

最佳答案

要构建树状结构,您可以使用指针:

struct N {
    int value;
    N *left;
    N *right;
};

您还可以使用引用:

struct N {
    int value;
    N &left;
    N &right;
};

但是通过这种方式,您需要在没有任何一个分支(或两者)的元素中小心地绑定(bind)引用

或其他间接类型:unique_ptrshared_ptrreference_wrapper

此外,您可以拥有一大堆子引用:

struct N {
    int value;
    std::vector<std::reference_wrapper<N>> branches;
};

关于c++ - C++ 中的嵌套结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51895017/

相关文章:

c++ - Objective C 类方法 == C++ 构造函数?

c++ - 'private'访问修饰符是否给了编译器更大的优化空间?

c++ - linux voip库

c++ - 将枚举与按值传递一起使用并在函数中返回的正确方法?

PHP 和 Python 解包从同一来源返回不同的结果

c++ - 删除正则表达式匹配

c++ - 检查我的 const 变量是否没有被外部修改

ios - swift 3 : Instance Member cannot be used on type “View Controller”

c - 如何在结构中存储多数据值并使用它们?

c - 插入时对链表进行排序