本文主要是介绍C++ 有限元状态机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
测试
#include <iostream>
#include "state_machine.h"class Context {
public:char input;
};class TurnOn : public sm::Event<Context> {
public:bool triggered() {if(context->input=='1') {std::cout << "switch on" << std::endl;return true;}return false;}
};class TurnOff : public sm::Event<Context> {
public:bool triggered() {if(context->input=='2') {std::cout << "switch off" << std::endl;return true;}return false;}
};class On : public sm::State<Context> {void enter() {std::cout << "enter On state" << std::endl;}void execute() {std::cout << "execute On state" << std::endl;}void exit() {std::cout << "exit On state" << std::endl;}
};class Off : public sm::State<Context> {void enter() {std::cout << "enter Off state" << std::endl;}void execute() {std::cout << "execute Off state" << std::endl;}void exit() {std::cout << "exit Off state" << std::endl;}
};int main() {TurnOn turn_on;TurnOff turn_off;On on;Off off;Context context;sm::StateMachine<2, 2, Context> sm(&on, &context);sm.transit(&on, &off, &turn_off);sm.transit(&off, &on, &turn_on);sm.start();while(true) {std::cin >> context.input;sm.update();}
}
效果
enter On state
1
execute On state
2
switch off
exit On state
enter Off state
execute Off state
3
execute Off state
1
switch on
exit Off state
enter On state
execute On state
0
参考
https://github.com/Eryk-Mozdzen/state-machine-cpp
创作不易,小小的支持一下吧!
这篇关于C++ 有限元状态机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!