Russian Qt Forum

Qt => Вопросы новичков => Тема начата: deMax от Июнь 08, 2016, 09:12



Название: QMutableIterator peekPrevious
Отправлено: deMax от Июнь 08, 2016, 09:12
Как получить предыдущий элемент? Qt5.6

Код:
    QStringList sl = QString("1,2,3,4,5,6").split(',');
    QMutableListIterator<QString> i(sl);
    while(i.hasNext()) {
        QString s = i.next();
        if(i.hasPrevious()) qDebug()<<i.peekPrevious();
        qDebug()<<s<<i.value();
        if(i.hasNext()) qDebug()<<i.peekNext();
        qDebug()<<"---"; }

Выводит что то странное(peekPrevious эквивалентен value):
Цитировать
"1"
"1" "1"
"2"
---
"2"
"2" "2"
"3"
---
"3"
"3" "3"
---


Название: Re: QMutableIterator peekPrevious
Отправлено: Igors от Июнь 08, 2016, 10:18
Выводит что то странное(peekPrevious эквивалентен value):
Не совсем, напр
Код
C++ (Qt)
i.toBack();
if (i.hasPrevious())
 qDebug() << i.peekPrevious();
 
qDebug() << i.value(); // crash
 

[off]
Как получить..
Ну да, "сразу к делу", зачем тратиться на что-то типа "здрасьте"?  :)
[/off]


Название: Re: QMutableIterator peekPrevious
Отправлено: deMax от Июнь 08, 2016, 12:54
>>Ну да, "сразу к делу", зачем тратиться на что-то типа "здрасьте"?
Цитировать
QMutableListIterator::QMutableListIterator(QList<T> &list)
Constructs an iterator for traversing list. The iterator is set to be at the front of the list (before the first item).

Странная штука, проход назад отрабатывает корректно, проход вперед возвращает текущее значение ???