0

我是 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 IloExtractable”

2 暗淡的 IloArrangeArray 也是如此。你有什么意见?

谢谢

4

1 回答 1

0

解决了!看起来虽然我们有一个 IloRangeArray 的多维向量,但我们必须将每个 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);
        }
        **model.add(con[h][m]);**
    }
}
于 2015-02-28T14:22:49.937 回答