У меня есть проблема правильности с QList.
У меня есть метод getValue
чья подпись я не могу изменить, возвращая const double и здесь
double vs = MinInput->getValue(0, 0);
против является постоянным
Я хотел бы построить 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;
и эта самая последняя строка кода доставляет мне неприятности. (другие ошибки при заполнении списка другими такими константными двойными числами)
подпись для getValue такая
const TYPE & VarData<TYPE>::getValue( uint r, uint c ) const
Я думаю, правильный код будет:
minmax[0] = vs;
Обновить:
QList::at
возвращается const
ссылка, которая не может быть изменена.
QList::at(int i)
это функция получения Возвращает const
ссылка, и вы не можете ничего присвоить ей.
использование QList::operator[](int i)
или же QList::replace(int i, const & T value)
установить значение в положении i
,