小编Dru*_*sky的帖子

Python将函数变量设置为静态的方法

我必须@staticmethod在类内部创建一个。我想知道是否有任何方法可以“保存”在两个顺序调用之间的静态方法内部定义的变量。

我的意思是一个行为类似于 C++ 中的静态变量的变量

python static-methods

2
推荐指数
1
解决办法
133
查看次数

如何管理 std::function 的 std::vector

我正在从用于解决 ODE 的类层次结构转移到用于解决 ODE 系统的类。

在我使用单个函数的实现中,我使用以下内容来存储我的函数:

std::function<const Type(const Type, const Type)> numericalFunction
Run Code Online (Sandbox Code Playgroud)

我有一个包装器来评估数值函数:

Type f (Type t, Type u) const noexcept { return numericalFunction(t,u); }
Run Code Online (Sandbox Code Playgroud)

现在我要解决方程组,所以我需要存储多个函数。我尝试使用 a 存储函数集,std::vector如下所示:

std::vector<std::function<const Type(const Type,const Type)>> numericalFunction;
Run Code Online (Sandbox Code Playgroud)

我希望能够使用与上述问题相同的语法。那是,

f[0](12,32); 应该执行 numericalFunction.at(0)(12,32);

dfdt[0](t, u); 应该执行 (numericalFunction.at(0)(t, u+eps) - numericalFunction.at(0)(t, u))/eps;

我如何编写代码以允许这样的语法?

编辑我有一个问题..现在我需要更改功能

std::vector<std::function<const Type(const Type,const Type)>> numericalFunction; 
Run Code Online (Sandbox Code Playgroud)

变成:

std::vector<std::function<const Type(const Type,const std::vector<Type>)>> numericalFunction; 
Run Code Online (Sandbox Code Playgroud)

并且派生类不起作用

c++ class vector operator-overloading

1
推荐指数
1
解决办法
898
查看次数