我需要维护一个从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)’函数
solver.add_clause((int*)lits.begin(), lits.size());
但是还有一个问题:
错误:从类型“__gnu_cxx::__normal_iterator<int*,std::vector<int,std::allocator<int> > >”无效地转换到类型“int*”
我希望能够快速解决这个问题,因为改变CSolver的接口会导致整个程序的改变。
提前感谢您的帮助。