计算表达式字符串由 std::map 中的键组成

spr*_* cc 4 c++ boost dictionary

我有像 c++ std::map 对象

std::map<std::string, int> data = {{"a",1},{"b",2}};
Run Code Online (Sandbox Code Playgroud)

我有一个字符串表达式由这个映射中的键组成:

"(a%2)+2*((b-2)%2)"
Run Code Online (Sandbox Code Playgroud)

我要做的就是计算这个表达式的值,返回类型应该是int. 有没有办法做到这一点?也许这个boost包可能会有所帮助。

M. *_*osi 6

ExprTk似乎是您正在寻找的东西,使用起来似乎很简单,只需要#include "exprtk.hpp".

这可以通过使用来完成boost,如该问题答案所示

  • 非常感谢,ExprTk 很有帮助:) (2认同)