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


  严重性:“错误”消息:“无重载函数实例
  “ std :: vector :: push_back [[_Tp = std :: __ cxx11 :: string,
  _Alloc = std :: allocator]“与参数列表匹配-参数类型为:(IloCplex :: CplexStatus)-对象类型为:
  std :: vector>'位于:'132,13'来源:''代码:
  “未定义”


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

最佳答案

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

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


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

07-24 09:17