ExprTk, получить список символов / переменных в выражении - PullRequest
3 голосов
/ 03 марта 2020

Я хочу получить список символов из выражения в ExprTk (не те, которые я зарегистрировал, а те, которые есть в выражении. Например, когда выражение

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

мне нужно чтобы получить x и y как результат в виде списка / вектора или чего-то еще. Как я могу это сделать?

1 Ответ

3 голосов
/ 04 марта 2020

В ExprTk readme.txt: Раздел 23 - Помощники и утилиты имеет следующую бесплатную функцию помощника: 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...