我正在开发一个大型、复杂的模型(主要是简单的数学,主要是代数,但有很多计算)。我最初的出价是假设我必须做所有事情一次,但现在范围已经扩大,以至于我需要多次运行整个模型(在同一组基础假设上,但使用不同的数据集)。
根据我最初的需求,我创建了一堆类,然后在我的主函数中创建了这些类的动态实例,并在执行过程中通过引用将它们传递给每个函数。这样,在主函数结束时,我可以在所有函数运行后进行所有必要的报告/输出。我的问题是关于现在如何修改我的主要功能以允许多次迭代。下面是一些示例代码,然后是我的问题:
// Sample class declaration (in main)
vector<PropLevelFinancials> PLF;
// Sample function call (functions in other header files)
ProcessPropFinancials(vector<PropLevelFinancials>& PLF);
// Reporting at the end of main (functions in other header files)
OutputSummaryReport(vector<PropLevelFinancials>& PLF, other objects);
// What I need to do next
// Clear/Delete PLF and other objects, iterate through model again
我对当前程序的速度和结果感到非常满意,因此不需要在这方面进行大量输入(尽管总是欢迎提出建议)。
我应该如何实现循环遍历多个数据集的能力(我显然知道如何循环,我的问题是关于内存管理)?速度至关重要。我想基本上删除我创建的类对象的现有实例(PLF),然后在对象的新实例上再次运行所有内容。这是我应该使用“新”和“删除”来管理迭代的情况吗?如上所述,这会改变我的函数调用吗?如果我想避免使用 new 和 delete(留在堆栈上),我有什么选择?