如何保存CPLEX求解器的查询结果?

时间:2018-03-21 03:53:26

标签: c++ cplex

我正在使用CPLEX Concert技术(使用C ++)在循环中多次解决线性程序。在每次迭代中,我想将cplex.getCplexStatus()的输出保存到向量中,以便稍后将其打印到文件中。我首先使用vector <string> LP_STATUS;引入了一个向量,然后尝试在循环中使用LP_STATUS.push_back (cplex.getCplexStatus() ) ;来捕获输出。但是,我最终得到以下错误:

  

严重性:&#39;错误&#39;消息:&#39;没有重载函数的实例   &#34; std :: vector&lt; _Tp,_Alloc&gt; :: push_back [with _Tp = std :: __ cxx11 :: string,   _Alloc =标准::分配器]&#34;匹配参数列表 - 参数类型是:(IloCplex :: CplexStatus) - 对象类型是:   的std ::矢量&GT;&#39; at:&#39; 132,13&#39;来源:&#39;&#39;码:   &#39;未定义&#39;

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您收到编译器错误,因为getCplexStatus方法从IloCplex::CplexStatus枚举返回字符串中的值。解决这个问题的一种方法是:

vector<IloCplex::CplexStatus> LP_STATUS;
LP_STATUS.push_back (cplex.getCplexStatus());

也就是说,我们将LP_STATUS声明为IloCplex::CplexStatus的向量,而不是string的向量。