本文整理汇总了C++中Gate::eval方法的典型用法代码示例。如果您正苦于以下问题:C++ Gate::eval方法的具体用法?C++ Gate::eval怎么用?C++ Gate::eval使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gate
的用法示例。
在下文中一共展示了Gate::eval方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: eval
bool eval(){
bool ret;
if(type>='A' && type<='Z') ret = v[type-'A']==1?true:false;
else{
bool lv = l->eval();
bool rv = r->eval();
if(linv) lv = !lv;
if(rinv) rv = !rv;
if(type==')') ret = lv&&rv;
else ret = lv||rv;
}
if(inv) ret = !ret;
return ret;
}
示例2: main
int main()
{
bool begin = true;
while(gets(s)){
memset(pic,' ',sizeof pic);
memset(vis,0,sizeof vis);
int len = strlen(s);
int ri,rj;
for(int j=0;j<len;j++){
pic[1][1+j] = s[j];
if(s[j]=='?') ri = 1, rj=1+j;
}
//pic[0][len] = 0;
int n=1;
while(gets(s),s[0]!='*'){
++n;
len = strlen(s);
for(int j=0;j<len;j++){
pic[n][1+j] = s[j];
if(s[j]=='?') ri = n, rj = 1+j;
}
//pic[n][len] = 0;
}
//bfs until a A, ) o >
if(begin)begin=false;
else
printf("\n");
vis[ri][rj] = 1;
Gate *root = build(ri,rj);
while(gets(s),s[0]!='*'){
for(int i=0;i<26;i++)
v[i] = s[i]-'0';
if(root->eval())printf("1\n");
else printf("0\n");
}
}
return 0;
}