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

时间:2017-08-20 21:16:21

标签: c++ dictionary boost

我有c ++ std :: map对象,如

std::map<std::string, int> data = {{"a",1},{"b",2}};

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

"(a%2)+2*((b-2)%2)"

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

1 个答案:

答案 0 :(得分:4)

ExprTk似乎就是您要找的,看似简单易用,只需要#include "exprtk.hpp"

可以使用boost完成此操作,如answers to this question中所示。