我正在寻找一个CXX库,它通过状态机上的运行时操作实现有限状态机(或自动机)?
在SageMath中,有一个模块Finite State Machines正是我正在寻找的。 p>
我看了下面的图书馆。但是在所有这些中,应该在代码中指定状态机。
但我想select min(DURATION_MACRO_CURR) as min_val,
min(case when seqnum / 0.25 >= cnt then DURATION_MACRO_CURR end) as 25_percentile,
min(case when seqnum / 0.50 >= cnt then DURATION_MACRO_CURR end) as 50_percentile,
min(case when seqnum / 0.75 >= cnt then DURATION_MACRO_CURR end) as 75_percentile,
max(DURATION_MACRO_CURR) as max_val
from (select pc.*,
row_number() over (order by DURATION_MACRO_CURR) as seqnum,
count(*) over () as cnt
from PROD_EXP_DL_CVM.PROD_CVM pc
where pc.PW_END_DATE = '2016-10-18'
) pc;
,add_state(s)
,delete_state(s)
,add_transition(s1,s2,input,output)
或类似的东西,在运行时。
是否有可用的CXX库?
答案 0 :(得分:0)
Qt的QStateMachine可以做到这一点。
首先,创建一个状态机。
QStateMachine sm;
然后,创建状态。
QState *s1 = new QState();
QState *s2 = new QState();
您可以按如下方式将状态添加到状态:
// Event source Event Transition to state
s1->addTransition(button, SIGNAL(clicked()), s2);
最后,将状态机添加到状态,如下所示:
sm.addState(s1);
这意味着您可以动态创建状态机,状态和转换。
这是一份文件: