12

有谁知道一个图书馆可以让你做这样的事情?

std::transform(vecA.begin(), vecA.end(), 
               vecB.begin(), 
               vecOutput.begin(), 
               // run-time specified expression 
               magic_functor<float>("exp(a/(b+3))") 
);

其中 magic_functor 是库提供的仿函数,a 和 b 通过 vecA 和 vecB 进行迭代。

我可以自己想出一些东西(这样做会很有趣),但最好避免重新发明轮子(我的老板也会杀了我)。花了一些时间搜索网络,但无法真正找到符合要求的任何内容。

它需要灵活和快速,因此只解析字符串一次(例如在构造时在内部创建执行堆栈)的仿函数方法将是理想的,但对其他解决方案持开放态度。

4

1 回答 1

4

几个选项(需要一些工作并且不会“开箱即用”):

于 2012-04-11T21:14:47.240 回答