C++ C+中的嵌套/递归类+;

C++ C+中的嵌套/递归类+;,c++,matlab,C++,Matlab,我目前正在编写一个涉及递归类的算法。在Matlab中,我可以将一个结构放在一个结构中,但是我想知道我是否可以在C++中做同样的事情。 例如,我有一个正方形矩阵,它可以分为4个更小的矩阵。每个小矩阵将再次分解为4个小矩阵。矩阵将被分割,直到其具有预定义的大小。因此,我可以表示层次树下的矩阵 换句话说,我可以说每个矩阵都有自己的子矩阵和属性。你能给我一个编写这类问题的有效方法吗。由于速度对算法非常重要,我仍在寻找实现算法的最快方法 先谢谢你 敬意,,指针和C++可以很容易地用指针: struct s

我目前正在编写一个涉及递归类的算法。在Matlab中,我可以将一个结构放在一个结构中,但是我想知道我是否可以在C++中做同样的事情。 例如,我有一个正方形矩阵,它可以分为4个更小的矩阵。每个小矩阵将再次分解为4个小矩阵。矩阵将被分割,直到其具有预定义的大小。因此,我可以表示层次树下的矩阵

换句话说,我可以说每个矩阵都有自己的子矩阵和属性。你能给我一个编写这类问题的有效方法吗。由于速度对算法非常重要,我仍在寻找实现算法的最快方法

先谢谢你


敬意,

,指针和C++可以很容易地用指针:

struct some_struct
{
    int    some_field;
    double some_other_field;

    struct some_struct *some_pointer_to_struct;
};
在C++中,如果你想要一个以上的容器,可以使用普通的标准容器:

struct some_struct
{
    int    some_field;
    double some_other_field;

    std::vector<some_struct*> collection_of_struct_pointers;
};
struct some\u struct
{
int一些_字段;
将某些字段加倍;
std::结构指针的向量集合;
};

这里重要的一点是,您必须使用指针,因为直接在结构本身中使用结构(如
struct some_struct foo;
)在结构完全定义之前是不起作用的,而在右大括号中是不完全定义的。

您可以使用指针。或容器

struct Matrix
{
  // some members
  Matrix* child; //version 1
  std::vector<Matrix> Children; //version 2
}
结构矩阵 { //一些成员 矩阵*child;//版本1 std::vector Children;//版本2 }
非常感谢您的建议!我真的很感激。这很有帮助!!!