我正在尝试构建一个多项式函数生成器,以便它将一个 vector (任意大小)作为参数,并生成一个以后可以使用的多项式函数。
例如,
poly_gen(vector<int> power_index)
以(我可以用另一个函数调用)的形式返回一个函数(或通过其他方法)
y(k)=a0+ a1*n+ a2*n^2 + a3*n^3 + ... + ak*n^k
其中a0,a1 .... ak存储在 vector power_index中
然后我可以用
int calc_poly(int n)
这个
calc_poly
可以给我返回一个数字,该数字是使用poly_gen()
生成的多项式表达式计算得出的PS:
我不知道如何用关键词搜索这个问题。
功能,构造,生成器,指针,函子...
没有给我想要的结果。
谢谢你们!
最佳答案
您无法在C++的运行时生成函数,因此必须使用函子。
您可以创建一个对象,该对象以某种方式(可能是直接副本)存储power_index
给定的系数,并为其提供一个operator() (int n)
运算符,该运算符将获取系数并计算多项式的值(霍纳法则?)。然后,您可以自由传递该对象。
因此,您需要一个构造函数,一个系数的内部表示形式以及一个进行实际计算的operator()
。应该足够简单。