我必须维持一个自2004年以来没人接触过的计划.
class CSolver
{
...
ClauseIdx add_clause (int * lits, int n_lits);
}
void and2 (CSolver & solver)
{
vector <int> lits;
...
solver.add_clause(lits.begin(), lits.size());
}
Run Code Online (Sandbox Code Playgroud)
编译器抱怨说:
错误:没有匹配函数来调用'CSolver :: add_clause(__ gnu_cxx :: __ normal_iterator <int*,std :: vector <int,std :: allocator <int >>>,size_t)'
我试着去投它
solver.add_clause((int*)lits.begin(), lits.size());
Run Code Online (Sandbox Code Playgroud)
但仍有一个抱怨:
错误:从类型'__gnu_cxx :: __ normal_iterator <int*,std :: vector <int,std :: allocator <int >>>>'输入无效,以输入'int*'
我想快速解决这个问题,因为改变CSolver的界面会导致改变整个程序.
提前致谢.
c++ ×1