4

我想从 ExprTk 中的表达式中获取符号列表(不是我注册的符号,而是表达式中的符号。例如,当表达式是

const std::string expression_string = "abs(sin(x)^2+5*y)";

我需要将 x 和 y 作为列表/向量之类的结果。我怎样才能做到这一点?

4

1 回答 1

5

在 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。

于 2020-03-04T09:40:36.390 回答