有限状态机
#include<iostream>
#include<vector>
using namespace std;
typedef struct Context{
int iNext;
}Context_t;
void processor(Context_t &context,vector<int>& requests,vector<int>& results){
switch(context.iNext){
case 1:
{
cout<<"11111111111111"<<endl;
requests.push_back(1);
cout<<"22222222222222"<<endl;
requests.push_back(2);
context.iNext = 2;
}
break;
case 2:
{
if(results.size()<2){
//cout<<"get resulsts error"<<endl;
//return;
}
for(size_t i=0;i<results.size();i++){
cout<<"get resulsts"<<results[i]<<endl;
}
requests.push_back(2);
cout<<"33333333333333333333"<<endl;
context.iNext = 3;
}
break;
case 3:
{
if(results.size()<1){
//cout<<"get results error"<<endl;
//return;
}
for(size_t i=0;i<results.size();i++){
cout<<"get results"<<results[i]<<endl;
}
context.iNext = -1;
}
break;
}
}
int main()
{
vector<int> requests;
vector<int> results;
Context_t context;
context.iNext = 1;
do
{
processor(context,requests,results);
results.clear();
for(size_t i=0;i<requests.size();i++){
results.push_back(i);
}
requests.clear();
}while(context.iNext != -1);
}
来源:https://www.cnblogs.com/xloogson/archive/2012/12/06/2804464.html