【发布时间】:2018-07-10 22:28:03
【问题描述】:
假设我想编写一个通用的数值积分脚本,它接受一个用户定义的函数并对变量int x 进行积分。进一步假设该函数可以调用任意数量的数据列表;例如假设我希望集成商 f_integrator 能够集成以下任何内容:
integrand(x)=f(x)
integrand(x)=f(x)*g(x)
integrand(x)=(f(x)+g(x)/h(x))
integrand(x)=pow(f(x),2)*k(x)
那么看来我们需要它能够调用只是一个定义明确的函数,而不需要指定函数需要多少参数(也许我们需要指定其中的一部分,例如函数必须有一个int x)。如果是这样,那么我们该如何实施呢?如果我们应该用另一种方式来做,怎么做?
【问题讨论】:
-
使用向量或诸如此类的东西,可能是字典(地图)向函数传递参数列表。
-
我不明白关于“函数需要多少参数”的部分。您所有的示例似乎都是采用一个参数的函数。此外,您不能对定义域只能具有整数值的函数进行数值积分。
-
f_integrator([f,g,h] (int x) { return (f(x)+g(x))/h(x); });? -
我不明白你是如何得出结论的
without specifying how many arguments the function takes。我认为您需要阐明您想要实现的目标,而不是告诉我们您认为应该如何解决它。 -
如果你不知道你的函数有多少参数,你就不能用它做任何事情。所以也许你需要更多地考虑你想要达到的目标。
标签: c++ function variadic-functions