2013-10-09 56 views
0

我目前正在编写一个涉及递归类的算法。在Matlab中,我可以将一个结构放入一个结构中,但是我不知道我是否可以在C++中做同样的事情。C++中的嵌套/递归类

例如,我有一个矩形矩阵,可以分为4个更小的矩阵。每个小矩阵将再次分解成4个小矩阵。矩阵将被分割,直到它具有预定义的大小。因此,我可以在一个分层树下表示一个矩阵。

为了说话,我可以说每个矩阵都有自己的孩子和属性。你能指导我一种编程这种问题的有效方法吗?由于速度对算法非常重要,我仍然在寻求一种实现算法的最快方法。

提前致谢。

亲切的问候,

回答

0

它可以很容易地在C和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_struct foo;)不能工作,直到结构完全定义d,直到右大括号才完全定义。

+0

非常感谢您的建议! –

1

您可以使用指针。或容器。

struct Matrix 
{ 
    // some members 
    Matrix* child; //version 1 
    std::vector<Matrix> Children; //version 2 
} 
+0

我真的很感激。这很有帮助! –