Получить текущий элемент из QMutableListIterator - PullRequest
2 голосов
/ 12 августа 2010

Я не могу разыменовать QMutableListIterator как итератор STL - с * it.

Я пытаюсь использовать QMutableListIterator :: value (), но моя программа падает.Как правильно сделать это?

QFileInfoList files;
// populate list
QListIterator<QFileInfo> it(files);
it.toFront();
QFileInfo = it_top.value();
// crash

Ошибка

ASSERT: "item_exists()" in file /usr/include/qt4/QtCore/qlist.h, line 778

Спасибо

Ответы [ 2 ]

2 голосов
/ 12 августа 2010

Я только что проверил документацию Qt на «toFront» и там написано:

Перемещает итератор в начало контейнер (до первого пункта).

http://doc.trolltech.com/latest/qmutablelistiterator.html#toFront

Итераторы Qt являются итераторами в стиле Java, которые начинаются перед элементами и заканчиваются на последнем элементе, итераторы стиля C ++ начинаются с первого элемента и заканчиваются после последнего.

0 голосов
/ 12 августа 2010

В показанном вами коде нет ничего плохого.

Проблема на самом деле заключается в // populate list

На самом деле Полагаю, ни один элемент не заполняется в QFileInfoList Вот почему вы получаете ASSERT при попытке получить к нему доступ.

И проверьте возвращаемое значение hasNext(). Скорее всего, он вернет false.

Надеюсь, это поможет каким-то образом ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...