当前位置: 首页 > news >正文

通辽正规网站建设做网站需要什么系统

通辽正规网站建设,做网站需要什么系统,网站公司做的网站有最字,网络服务包括哪些内容目录 解释器模式#xff08;Interpreter Pattern#xff09; 实际应用 算术表达式解释器 布尔表达式解释器 总结 解释器模式#xff08;Interpreter Pattern#xff09; 解释器模式是一种行为设计模式#xff0c;它定义了一种语言的文法表示#xff0c;并使用解释器…目录 解释器模式Interpreter Pattern 实际应用 算术表达式解释器 布尔表达式解释器 总结 解释器模式Interpreter Pattern 解释器模式是一种行为设计模式它定义了一种语言的文法表示并使用解释器来解释这些文法。该模式适用于那些有特定语法规则的场景比如编译器、正则表达式引擎和计算器。 实际应用 算术表达式解释器 算术表达式解释器 -- 可以解析和计算包含加法和减法的算术表达式。 #include iostream #include string #include stack #include memory #include unordered_map// 抽象表达式 class Expression { public:virtual ~Expression() default;virtual int interpret(const std::unordered_mapchar, int context) 0; };// 终结符表达式变量 class VariableExpression : public Expression { private:char name; public:VariableExpression(char name) : name(name) {}int interpret(const std::unordered_mapchar, int context) override {return context.at(name);} };// 非终结符表达式加法 class AddExpression : public Expression { private:std::shared_ptrExpression left, right; public:AddExpression(std::shared_ptrExpression left, std::shared_ptrExpression right) : left(left), right(right) {}int interpret(const std::unordered_mapchar, int context) override {return left-interpret(context) right-interpret(context);} };// 非终结符表达式减法 class SubtractExpression : public Expression { private:std::shared_ptrExpression left, right; public:SubtractExpression(std::shared_ptrExpression left, std::shared_ptrExpression right) : left(left), right(right) {}int interpret(const std::unordered_mapchar, int context) override {return left-interpret(context) - right-interpret(context);} };// 客户端代码解析并计算表达式 int main() {std::string expr ab-c;std::unordered_mapchar, int context {{a, 5}, {b, 3}, {c, 2}};std::stackstd::shared_ptrExpression stack;for (char token : expr) {if (isalpha(token)) {stack.push(std::make_sharedVariableExpression(token));} else if (token ) {auto right stack.top(); stack.pop();auto left stack.top(); stack.pop();stack.push(std::make_sharedAddExpression(left, right));} else if (token -) {auto right stack.top(); stack.pop();auto left stack.top(); stack.pop();stack.push(std::make_sharedSubtractExpression(left, right));}}auto expression stack.top();int result expression-interpret(context);std::cout Result: result std::endl;return 0; }布尔表达式解释器 布尔表达式解释器 -- 可以解析和计算包含与AND和或OR的布尔表达式。 #include iostream #include string #include stack #include memory #include unordered_map// 抽象表达式 class Expression { public:virtual ~Expression() default;virtual bool interpret(const std::unordered_mapstd::string, bool context) 0; };// 终结符表达式变量 class VariableExpression : public Expression { private:std::string name; public:VariableExpression(const std::string name) : name(name) {}bool interpret(const std::unordered_mapstd::string, bool context) override {return context.at(name);} };// 非终结符表达式与操作 class AndExpression : public Expression { private:std::shared_ptrExpression left, right; public:AndExpression(std::shared_ptrExpression left, std::shared_ptrExpression right) : left(left), right(right) {}bool interpret(const std::unordered_mapstd::string, bool context) override {return left-interpret(context) right-interpret(context);} };// 非终结符表达式或操作 class OrExpression : public Expression { private:std::shared_ptrExpression left, right; public:OrExpression(std::shared_ptrExpression left, std::shared_ptrExpression right) : left(left), right(right) {}bool interpret(const std::unordered_mapstd::string, bool context) override {return left-interpret(context) || right-interpret(context);} };// 客户端代码解析并计算布尔表达式 int main() {std::string expr a AND b OR c;std::unordered_mapstd::string, bool context {{a, true}, {b, false}, {c, true}};std::stackstd::shared_ptrExpression stack;std::istringstream iss(expr);std::string token;while (iss token) {if (token a || token b || token c) {stack.push(std::make_sharedVariableExpression(token));} else if (token AND) {auto right stack.top(); stack.pop();auto left stack.top(); stack.pop();stack.push(std::make_sharedAndExpression(left, right));} else if (token OR) {auto right stack.top(); stack.pop();auto left stack.top(); stack.pop();stack.push(std::make_sharedOrExpression(left, right));}}auto expression stack.top();bool result expression-interpret(context);std::cout Result: std::boolalpha result std::endl;return 0; }总结 解释器模式可以帮助我们定义和解释特定语言的语法规则并将这些规则应用于不同的上下文。
http://www.w-s-a.com/news/172149/

相关文章:

  • 建站特别慢wordpress网页制作与设计项目策划书
  • 视频制作素材免费网站头像制作在线生成器
  • 网站建设是不是可以免费建站广州做网站 信科网络
  • 闸北区网站设计叫别人做网站后怎么更改密码
  • 为什么想做网站运营建设工程教育网站
  • 站长基地百度推广整体优化网站
  • 门窗 东莞网站建设wordpress外链论坛
  • 安徽省建设部网站官网还能用的wap网站
  • 企业网站设计开发网站关键词优化seo
  • 郑州高档网站建设台州网站建设推广
  • 广东省建设信息港网站WordPress手机缩略图设置
  • 优秀网站主题平顶山专业做网站公司
  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好
  • 苏州高端网站建设kgwl互动网站建设的主页
  • 宿州网站建设哪家公司好个人网站制作方法
  • 网站正能量晚上在线观看视频站长之家关键词挖掘工具
  • 建设网站怎么判断是电脑还是手机仿租号网站源码网站开发
  • seo百度网站排名软件重庆巫山网站设计公司
  • 搭建视频播放网站网站排名诊断
  • 网站域名注册网站centos做网站服务器
  • 网站服务器共享的 vpsh5页面制作软件电脑版
  • 免费手机网站申请上海网站建设设计公司哪家好
  • 站长工具大全企业网上书店网站建设设计
  • 做网站的专业公司公司网站是做的谷歌的
  • 做网站前期工作wordpress图片并排
  • 免费注册网站哪个好wordpress评论修改
  • 合肥模板网站建设软件赤峰公司网站建设
  • 毕业设计都是做网站吗深圳网站制作企业邮箱