指向函数或函子的指针?函数发生器

dig*_*ber 2 c++ expression class function functor

我正在尝试构建一个多项式函数生成器,因此它将一个向量(任意大小)作为参数,并生成一个我稍后可以使用的多项式函数.

例如,

poly_gen(vector<int> power_index)
Run Code Online (Sandbox Code Playgroud)

以(我可以用另一个函数调用)的形式返回一个函数(或通过其他方法)

y(k)=a0+ a1*n+ a2*n^2 + a3*n^3 + ... + ak*n^k
Run Code Online (Sandbox Code Playgroud)

其中a0,a1 .... ak存储在vector-power_index中

后来我可以用它来调用它

int calc_poly(int n)
Run Code Online (Sandbox Code Playgroud)

calc_poly可以返回一个数字,通过使用由生成的多项式表达式计算poly_gen()

PS:我不知道如何通过关键词搜索这个问题.功能,构造,发电机,指针,仿函数...没有给我想要的结果.

谢谢你们!

Dav*_*ley 5

你不能在C++运行时生成函数,所以你必须使用仿函数.

您可以创建一个对象来存储power_index以某种方式给出的系数(可能是直接复制),并给它一个operator() (int n)运算符来获取系数并计算多项式的值(Horner的规则?).然后你可以自由地传递那个对象.

因此,您需要一个构造函数,一个系数的内部表示,以及一个operator()实际计算.应该够简单.