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

How to save the query results of CPLEX solver?

本文关键字:查询 结果 CPLEX 何保存 保存      更新时间:2023-10-16

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

严重性:"错误"消息:"没有重载函数的实例 "std::vector<_Tp, _Alloc>::p ush_back [with _Tp=std::__cxx11::string, _Alloc=std::allocator]"匹配参数列表 -- 参数类型为:(IloCplex::CplexStatus( -- 对象类型为: std::vector>' at: '132,13' 来源: '' 代码: "未定义">

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

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

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

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