强大的函数解析器






4.40/5 (18投票s)
2000年2月23日

145101

2179
一个简单但功能强大的函数解析器,可以解析和评估标准的数学函数
编写这段代码的灵感来自于希望有一个易于使用的函数解析器,用于处理以字符串形式给定的函数。你有一个像 "cos(x)-7*x/(1+x)" 这样的字符串,并且想要计算一些值,也许是为了显示函数的图形。你可以编写如下代码
CFunction<long double>* fkt = CFunction<long double>::Parse("cos(x)-7*x/(1+x)"); long double y = fkt->Execute(1.5);
在后台有很多定义,但结果却简单快捷!有一个一次性的解析步骤来构建函数树,而函数评估仅仅是对标准数学函数(如 sin、+、*、sqrt)的调用。如果你想了解更多关于实现的细节,你应该查看源代码。在这里描述解析算法会过于复杂。