Russian Qt Forum

Qt => Общие вопросы => Тема начата: Примерный ученик от Июль 25, 2010, 20:48



Название: Работа с QStringList QT3.3.8
Отправлено: Примерный ученик от Июль 25, 2010, 20:48
В QStringList список файлов каталога

         
Цитировать
QStringList::Iterator it=fileList.end();
         qDebug(QString::number(fileList.count()));
         fileList.erase(it);
         qDebug(QString::number(fileList.count()));

Начиная с последнего, передаю и удаляю из списка.
В отладчике после удаления

Цитировать
ASSERT: "it.node != node" in c:\qt\3.3.8\include\qvaluelist.h (301)

и на следующем удалении
Цитировать
Unhandled exception at 0x39fcad06 in sep_agent_c.exe: 0xC0000005: Access violation reading location 0x0000000c.

Что делаю не так? ???



Название: Re: Работа с QStringList QT3.3.8
Отправлено: SimpleSunny от Июль 25, 2010, 21:00
Это итератор в стиле STL, который указывает на следующий элемент после последнего.

Цитировать
iterator QValueList::end ()

Returns an iterator pointing past the last item in the list. This iterator equals begin() if the list is empty.


Название: Re: Работа с QStringList QT3.3.8
Отправлено: Примерный ученик от Июль 26, 2010, 10:48
Cпасибо...
Мог бы и сам по примеру догадаться ???


Название: Re: Работа с QStringList QT3.3.8
Отправлено: zenden от Июль 26, 2010, 18:11
STL должен знать любой программист на С++, это часть стандарта языка.
Поэтому и не догадались.