2013-10-09 55 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

我真的很感激。這很有幫助! –