我必须维护一个自 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());
}
编译器抱怨说:
错误:没有匹配函数调用 'CSolver::add_clause(__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, size_t)'</p>
我尝试投射它
solver.add_clause((int*)lits.begin(), lits.size());
但是还是有抱怨:
错误:从类型 '__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >' 到类型 'int*' 的无效转换
我想快速解决这个问题,因为更改 CSolver 的界面会导致整个程序发生变化。
提前致谢。