我在程序中进行了大量的数值积分和插值,并将结果保存在std :: function变量中。由于我不想每次都进行计算 - 只有当底层模型发生变化时 - 是否有办法将它们写入文件?或者我应该只是将数据写入文件并在启动时加载/插入它们?将std :: function保存到文件
谢谢大家, 尼克拉斯
编辑:例如,我使用TSpline3对象,然后“拯救”他们的lambda函数:
class Model
{
std::function<double(const double)> interpolated_function;
};
// In the code
std::vector<double> x; std::vector<double> y; Model *model;
// Calculations
auto spline = std::make_shared<TSpline3>("name", x.data(), y.data(), x.size());
model->interpolated_function = [spline] (const double x) { return spline->Eval(x); }
我知道我可以保存根TSpline3对象,但我想能够在不更改模型类的情况下更改插值方法。
你节省*结果*在'的std ::调用功能? – Borgleader
***有没有办法将它们写入文件?***最有可能。我可以告诉你,因为你没有发布代码。 – drescherjm
***在我的程序中并将结果保存在std :: function变量中***这没有任何意义。请发布一个简单的例子。 – drescherjm