Qt QList C3892:不能分配给const变量

时间:2013-04-11 07:37:47

标签: c++ qt const const-correctness qlist

我有QList的const正确性问题。

我有一个方法getValue,其签名我无法更改返回const double和此处

double vs = MinInput->getValue(0, 0);

vs是const。

我想用这个方法的结果构建QList,我得到错误C3892。

由于我的列表是QList,不能添加const double(?)

代码就是那样

    QList<double> minmax;
    for (int i = 0; i < 2*(3+othercutoffs_var_len) ; i++  )
        minmax.append( 0.0 );


    QSP< const VarInterface<double> > MinInput = ctx.getInputVar<double>(ctx.input(Id::fromString(QL1s("Min")))[0] );
    const double vs = MinInput->getValue(0, 0);
    minmax.at(0) = vs;

这最后一行代码让我陷入困境。 (用其他这样的const双精度填充列表时的其他错误)

getValue的

签名就像那样

const TYPE & VarData<TYPE>::getValue( uint r, uint c ) const

2 个答案:

答案 0 :(得分:3)

我猜正确的代码是:

minmax[0] = vs;

更新

QList::at返回const引用,无法修改。

答案 1 :(得分:2)

QList::at(int i)是一个getter函数。它返回const引用,您无法为其指定任何内容。

使用QList::operator[](int i)QList::replace(int i, const & T value)设置位置i的值。