我正在编写一种算法,用于计算约束系统的解决方案数量。这种情况下的约束是谓词,例如“a < b”或“a = 3+b 或 a = 6+b”,我将接收这些谓词作为输入字符串。我需要能够询问任何给定的变量值选择是否是有效组合,我宁愿不必构建解析器来执行此操作。
是否有一个快速的 C++ 库可以将字符串计算为数学表达式?我认为我有一种将“a < b”转换为“5 < 6”的简单方法,我只需要一种方法来评估它。
最佳答案
编写一个简单的算术表达式解析器是学校的一项练习。它真的没有那么复杂。试试吧!
我们的想法是将其转换为 reverse Polish notation然后评估它变得非常容易。上面的维基百科文章包含您需要的所有详细信息。
我还想到了工具“Flex”和“Bison”,尽管我自己没有使用过它们。
关于c++ - 有没有一种简单的方法可以在 C++、linux 中将字符串 "5 < 6"变为 true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4549906/