【发布时间】:2013-04-29 19:06:22
【问题描述】:
我是 C++ 的相对初学者。我正在研究与预测房地产财务相关的模型,但在设置数据结构时遇到了一些问题。
一些背景知识 - 我正在尝试执行的特定任务是为关键数据结构设置类变量 - 一种称为 PropFinance 的结构。这个结构将包含我关于给定属性的所有关键信息(包含它们集合中每个属性的迭代),包括对未来性能的预测。传递给程序的两个主要参数是(适用于所有要评估的属性) (1)迭代次数(Iterations)——我们要生成多少次预测(随机迭代) (2) 预测长度 (NumofPeriods) - 我们要预测多少个周期
PropFinance 类中有 79 个变量,其中包含属性详细信息。一个简单的例子——费用。对于费用以及我的许多类似变量,我需要创建一个双精度的 3D 数组 - 每次迭代一个维度,每个预测期一个维度。所以理想情况下,我会有一个变量用于:
class PropFinance {
double Expenses[Iterations][NumofPeriods];
}
但是,我在编译时不知道 Iterations 和 NumofPeriods。我确实知道这两个变量在运行时开始时的值(并且它们对于当前程序执行的所有迭代/属性都是恒定的)
我的问题是如何在程序运行时动态更新这些数组的大小?根据我对本网站和其他网站的研究,似乎实现此目的的两种主要方法是
(1) 使用 (2)在类定义中使用指针,然后使用new和delete来管理
但即使有这两个选项,我也不确定它是否适用于第三维度(我看到的所有示例都只需要一个维度来动态调整大小)。有人可以发布一个口头解释或(更好)一个简单的代码示例,说明这将如何在上面的(1)或(2)中工作?任何关于哪个选项更可取的指导将不胜感激(但不想开始“什么更好”的辩论)。当数组的大小将不断变化时,似乎 vector 更合适,这里不是这种情况......
此模型的整体速度至关重要,随着我们扩大迭代次数和属性,事情会迅速变大 - 所以我想尽可能高效地做事。
对不起,我没有发布代码 - 如果人们无法从上面看出我在问什么,我可以尝试将一些东西放在一起。
【问题讨论】:
标签: c++ class vector new-operator dynamic-arrays