我是CPLEx的初学者,并使用它来创建我的数学模型。我定义并构建了一个三维IloRangeArray作为我的约束,如下所示:
typedef IloArray<IloArray<IloRangeArray>> ThreeDimRange;
con = IloArray <IloArray <IloRangeArray> > (env, n);
for ()
{
con [h] = IloArray <IloRangeArray> (env, nbRow);
for ()
{
con[h][m] = IloRangeArray (env);
for ()
{
IloExpr tempExp(env);
if ()
con [h][m].add(0 <= tempExp <= 0);
}
}
}
当我想在模型中添加"con"时(model.add(con);),我有以下错误:
错误C2664:"IloExtractable IloModel::add(const IloExtractable)const":无法将参数1从"ThreeDimRange"转换为"const IloCextractable"
2 dim IloArrangeArray也是如此。你的意见是什么?
感谢
已解决!看起来,尽管我们有一个IloRangeArray的多维向量,但我们必须将每个IloRangerArray单独添加到模型中。
typedef IloArray<IloArray<IloRangeArray>> ThreeDimRange;
con = IloArray <IloArray <IloRangeArray> > (env, n);
for ()
{
con [h] = IloArray <IloRangeArray> (env, nbRow);
for ()
{
con[h][m] = IloRangeArray (env);
for ()
{
IloExpr tempExp(env);
if ()
con [h][m].add(0 <= tempExp <= 0);
}
**model.add(con[h][m]);**
}
}