我想从 ExprTk 中的表达式中获取符号列表(不是我注册的符号,而是表达式中的符号。例如,当表达式是
const std::string expression_string = "abs(sin(x)^2+5*y)";
我需要将 x 和 y 作为列表/向量之类的结果。我怎样才能做到这一点?
在 ExprTk readme.txt 中:第 23 节 - Helpers & Utils具有以下无辅助功能:collect_variables
用法如下:
const std::string expression_string = "abs(sin(x)^2+5*y)";
std::vector<std::string> variable_list;
if (exprtk::collect_variables(expression_string, variable_list))
{
for (const auto& var : variable_list)
{
...
}
}
else
printf("An error occurred.");
注意:如果表达式因任何原因无效,collect_variables将返回 false。