gpt4 book ai didi

c++ - QScriptEngine评估数字c++的平方或立方

转载 作者:行者123 更新时间:2023-11-30 05:04:36 31 4
gpt4 key购买 nike

我需要在 QScriptEngine 中评估数字的立方体或平方数

QString expression_string("2 * 2 * 2"); // not like this but 2^3 
QScriptEngine expression;
double my_val=expression.evaluate(expression_string).toNumber();

如何以这种方式实现 2 * 2 like 2 ^ 2 ?

最佳答案

如果您可以直接使用 Math.pow 函数,那么您应该直接使用它:auto expression = QStringLiteral("Math.pow(2, 3)")

如果你想重写像 2^3 这样的表达式成为有效的 javascript,你需要一个解析器。您需要将中缀语法 expr1^expr2 重写为前缀语法 Math::pow(expr1, expr2)。这不能通过简单的正则表达式来完成。

解析器可以用 JavaScript 本身编写。也许你可以重复使用 jsep ,修改为取幂运算符,并使用它来创建表达式的 AST,然后您可以使用 Math.pow 重写它以成为有效的 javascript 评估它基于 AST。

jsep 使添加自定义运算符变得微不足道 - 这个例子直接来自他们的自述文件:

jsep.addBinaryOp("^", 10);

关于c++ - QScriptEngine评估数字c++的平方或立方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48794303/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com