C++中的嵌套/递归类
Nested/Recursive class in C++
我目前正在编写一种涉及递归类的算法。在 Matlab 中,我可以将结构放入结构中,但我想知道我是否可以在C++中做同样的事情。
例如,我有一个方阵,可以分为 4 个较小的矩阵。每个小矩阵将再次分解为4个较小的矩阵。矩阵将被分割,直到它具有预定义的大小。结果,我可以在分层树下表示矩阵。
换句话说,我可以说每个矩阵都有自己的子矩阵和属性。你能指导我一种有效的方法来编程这种问题吗?由于速度对算法非常重要,我仍在寻找一种最快的方法来实现算法。
提前谢谢。
亲切问候
您可以使用指针。或容器。
struct Matrix
{
// some members
Matrix* child; //version 1
std::vector<Matrix> Children; //version 2
}
它可以很容易地在 C 中使用指针在 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;
(在结构完全定义之前不起作用,并且在右大括号之前它才完全定义。
相关文章:
- 通过递归进行因子分解
- 递归函数计算序列中的平方和(并输出过程)
- 嵌套在类中时无法设置成员数据
- 无法访问嵌套类.类的使用无效
- 什么是"递归嵌套模板"的实际用法示例?
- 如何在C++中将基本嵌套循环转换为递归循环
- 将三个嵌套的 for 循环包装成递归
- 嵌套环向尾部递归
- C++ 递归嵌套类型和名称注入
- MIPS语言中的嵌套和递归过程
- 以嵌套或递归方式(即在处理程序内)调用 asio io_service poll() 或 poll_one() 是否有效
- 使用嵌套字段递归更改键值
- 从套接字递归处理数据
- C++中的嵌套/递归类
- 基于递归的 N 嵌套循环存在逻辑问题
- C++:嵌套循环的动态数量(无递归)
- 嵌套for循环递归
- 两个嵌套循环的非递归归并排序
- GNU递归make -如何捕获make变量来执行嵌套的make文件
- 递归地从嵌套的通用数据结构中获取项