c++ - 有没有一种简单的方法可以在 C++、linux 中将字符串 "5 < 6"变为 true?

标签 c++ linux constraints

我正在编写一种算法,用于计算约束系统的解决方案数量。这种情况下的约束是谓词,例如“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/

相关文章:

ios - 使用 UITableViewCell 的自动布局约束以显示两个 View

c++ - 如何在实时绘图中使用 QCustomPlot

c++ - 忽略语法错误

linux - 什么时候调用 sem_unlink()?

linux - 通过 JSP 从一台服务器到另一台服务器的 Telnet 端口连接

ios - 空 UIView 上的自动布局约束无法按预期工作

c++ - 为什么函数重载有歧义,而模板重载却没有歧义?

c++ - bind2nd 在 for_each 循环中

java - 在将在Linux机器上运行的java应用程序中调用.net dll?

MYSQL 8.0.17 CHECK 不工作,即使它已经实现