C++ 将函数传递给仿函数
C++ pass function into functor
我在使用函子时遇到问题。
下面显示了一个仿函数,它接受任何函数和 returns 它的函数值和导数。
template <class T>
struct Funcd {
T &func;
double f;
Funcd(T &funcc) : func(funcc) {}
double operator() (double &x)
{
return f=func(x);
}
void df(double &x, double &df)
{
...
}
};
假设我已经有了像
这样的函数
double FunctionA(double &x){
return x*x;
}
我的问题是我不知道如何使用这个函子。
谁能在 main 函数中举一个例子,使用这个仿函数来查找函数值和导数?
谢谢!
您在创建仿函数时将其添加到仿函数中。使用与示例中相同的函数名称,我将执行以下操作:
Funcd fd(FunctionA);
那么你可以 fd
作为函数:
double v = fd(2);
可能是你在创建时必须指定模板参数fd
不过,我还没有编译或测试这段代码。
我在使用函子时遇到问题。 下面显示了一个仿函数,它接受任何函数和 returns 它的函数值和导数。
template <class T>
struct Funcd {
T &func;
double f;
Funcd(T &funcc) : func(funcc) {}
double operator() (double &x)
{
return f=func(x);
}
void df(double &x, double &df)
{
...
}
};
假设我已经有了像
这样的函数double FunctionA(double &x){
return x*x;
}
我的问题是我不知道如何使用这个函子。 谁能在 main 函数中举一个例子,使用这个仿函数来查找函数值和导数? 谢谢!
您在创建仿函数时将其添加到仿函数中。使用与示例中相同的函数名称,我将执行以下操作:
Funcd fd(FunctionA);
那么你可以 fd
作为函数:
double v = fd(2);
可能是你在创建时必须指定模板参数fd
不过,我还没有编译或测试这段代码。