有两个expr_vector A,B,我正在尝试使用
比较它们中的元素if(strcmp(A[i].ToString(),B[i].ToString()) == 1)
错误'class z3 :: expr'没有名为'ToString'的成员,可以在override string ToString ( ) 找到。
或者你能告诉我如何比较两个expr_vector中的变量吗?例如变量q1分别位于向量<expr>
A和B中。
答案 0 :(得分:1)
您在问题中提供的链接适用于Z3 C#(。Net)API,您的问题表明您使用的是C ++ API(expr_vector
是Z3 C ++ API的一类)。
要测试a
和b
是否相等,a
和b
是z3::expr
,我们应该使用eq(a, b)
。
eq
函数只是Z3_is_eq_ast
的包装,在z3++.h
定义
friend bool eq(ast const & a, ast const & b) { return Z3_is_eq_ast(a.ctx(), a, b) != 0; }