我正在使用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;
你能帮我解决这个问题吗?
答案 0 :(得分:1)
您收到编译器错误,因为getCplexStatus方法从IloCplex::CplexStatus枚举返回字符串中的值。解决这个问题的一种方法是:
vector<IloCplex::CplexStatus> LP_STATUS;
LP_STATUS.push_back (cplex.getCplexStatus());
也就是说,我们将LP_STATUS
声明为IloCplex::CplexStatus
的向量,而不是string
的向量。