Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибка при работе QVector< T <T> > или QList
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
horse315
Здравствуйте!
Имеем такое дело:
struct HasseRange{
    QVector<unsigned int> mark;
    QVector<QList <QChar> > vlist;
};
...

    struct HasseRange hr;
    QList<QChar> QL_QC_TMP;

    QList<QChar>::const_iterator it = Vr.constBegin();
    for(;it!=Vr.constEnd();++it){
        hr.mark.append(0);
        QL_QC_TMP.clear();
        QL_QC_TMP.append(*it);
        hr.vlist.append(QL_QC_TMP);
        //hr.vlist.append(*it);
    }

и теперь внимание:

    hr.vlist.at(1).append(QChar('a'));

Такая штука при попытке скомпилить дает следующее сообщение:

H:/bsd/graph/makehasse.cpp:28: error: passing `const QList<QChar>' as `this' argument of `void QList<T>::append(const T&) [with T = QChar]' discards qualifiers

Designer в качестве аргумента аппенд предлагает и QChar и QList<QChar> все одно, результат один и тот же. Что тут за this такой вообще не понятно. Пробовал обойти все, заменить на QList<QString>, получил то же самое. Где я наглупил, скажите пожалуйста.

p.s.
НО если тот же append сделать через итератор, то все просто прекрасно работает!
MoPDoBoPoT
Метод QList::at() возвращает константную ссылку на объект, а ты в hr.vlist.at(1).append(QChar('a')) хочешь константный объект с помощью QList::append() изменить. Используй оператор [] или итератор (для цикла он шустрее будет).
horse315
Цитата(MoPDoBoPoT @ 19.4.2010, 6:51) *
Метод QList::at() возвращает константную ссылку на объект, а ты в hr.vlist.at(1).append(QChar('a')) хочешь константный объект с помощью QList::append() изменить. Используй оператор [] или итератор (для цикла он шустрее будет).


спасибо, все понятно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.