在example.cpp的expr_vector示例中,我们可以量化expr_vector索引。例如,如果我们有以下代码片段:
expr_vector steps(c);
expr b = c.bool_val(true);
for(unsigned i = 0; i<N ; i++ )
{ expr step = c.int_const(...)
if( i == 0 ) b = b && step == 0 ;
else b = b && step == steps[i-1] + 1 ;
steps.push_back(step);
}
我们可以表达类似
的内容吗?expr choice = c.int_const("choice);
b = b && 0 <= choice && choice < N;
b = b && steps[choice] > 5 ;
答案 0 :(得分:1)
不,这是不可能的,expr_vectors就像具有固定大小和显式索引的普通向量一样。也就是说,可以通过使用数组来表达您的问题(参见例如Arrays section in the tutorial);然而,这可能以性能为代价,因为根据理论的不同组合,可能必须选择不同的决策程序。