相关疑难解决方法(0)

如何将vector <int>转换为int*

我必须维持一个自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++

4
推荐指数
2
解决办法
2123
查看次数

标签 统计

c++ ×1