exprtk完成带参表达式计算

/*
  输入:2*x+5*y+6*z
*/
#include <iostream>
#include <string>
#include "exprtk.hpp"
using namespace std;
double Calc( std::string& exp,  std::vector<std::string>& list,  std::vector<double>& param)
{
    typedef exprtk::symbol_table<double> symbol_table_t;
    typedef exprtk::expression<double> expression_t;
    typedef exprtk::parser<double> parser_t;

    symbol_table_t symbol_table;
    expression_t expression;
    parser_t parser;

    for (size_t i = 0; i < list.size(); ++i) {
         
        symbol_table.add_variable(list[i], param[i]);
    }
    //向符号表中添加一些常用的数学常量,例如pi(π)和e
    symbol_table.add_constants();
    expression.register_symbol_table(symbol_table);

    parser.compile(exp, expression);

    return expression.value();
}
int main() {
    std::string exp = "2*x+5*y+6*z";
    std::vector<std::string> list = { "x", "y", "z" };
    std::vector<double> param = { 1, 2, 3 };

    double result = Calc(exp, list, param);

    std::cout << "Result: " << result << std::endl;
 
    return 0;
}

#exprtk##c++##含参表达式计算#
全部评论

相关推荐

每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
白火同学:先说结论,准大三不是特别好找实习,boss沟通300+没有实习是很正常的情况。一是暑期实习时间太短了,二是在这么多准大四都找不到实习,从实习时间和掌握技术层面,企业会优先看他们。 再说简历,其实985本+准大三到这水平的简历也很优秀了,要说的话,项目经历可以再优化一下,可以基本围绕采取STAR原则,分为项目概述、技术架构、技术亮点、实现结果,再发给AI润色一下。 最后说操作,准大三的话,如果想找实习那就多投,不过现在也7月中旬了,时间上已经略晚了。如果7月底实在找不到,也可以多刷点算法,多学点技术,这实习也不至于一定得有,当然有更好。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务