Описание класса QVectorIteratorКласс QVectorIterator предоставляет константный итератор в стиле Java для QVector и QStack. Далее... #include <QVectorIterator>
Открытые функции
Подробное описаниеКласс QVectorIterator предоставляет константный итератор в стиле Java для QVector и QStack. QVector имеет как итераторы в стиле Java, так и итераторы в стиле STL. Итераторы в стиле Java более высокоуровневые и простые в использовании, чем итераторы в стиле STL; с другой стороны, они несколько менее эффективны. Альтернативой использованию итераторов является использование индекса позиций. Большинство функций-членов QVector принимает индекс в качестве первого параметра, делая возможным доступ, вставку и удаление элементов без использования итераторов. QVectorIterator<T> позволяет вам перебирать QVector<T> (или QStack<T>). Если вам требуется изменять вектор во время итерации, то используйте вместо этого QMutableVectorIterator<T>. Конструктор QVectorIterator принимает QVector в качестве параметра. После создания итератор указывает в самое начало вектора (перед первым элементом). Вот, как последовательно перебрать все элементы: QVector<float> vector; ... QVectorIterator<float> i(vector); while (i.hasNext()) qDebug() << i.next(); Функция next() возвращает следующий элемент в векторе и перемещает итератор. В отличие от итераторов в стиле STL, итераторы в стиле Java указывают между элементами, а не на сами элементы. Первый вызов next() перемещает итератор в позицию между первым и вторым элементами и возвращает первый элемент; второй вызов next() перемещает итератор в позицию между вторым и третьим элементами, возвращая второй элемент; и т.д. Вот, как последовательно перебрать все элементы в обратном порядке: QVectorIterator<float> i(vector); i.toBack(); while (i.hasPrevious()) qDebug() << i.previous(); Если вы хотите найти все вхождения определённого значения, используйте findNext() или findPrevious() в цикле. Несколько итераторов может быть использовано на одном и том же векторе. Если вектор изменяется в то время, как активен QVectorIterator, то QVectorIterator будет продолжать итерацию над оригинальным вектором, игнорируя изменённую копию. Смотрите также QMutableVectorIterator и QVector::const_iterator. Описание функций-членовQVectorIterator::QVectorIterator ( const QVector<T> & vector )Создаёт итератор для обхода вектора vector. Итератор устанавливается впереди вектора (перед первым элементом). Смотрите также operator=(). bool QVectorIterator::findNext ( const T & value )Ищет вперед значение value, начиная с текущей позиции итератора. Возвращает true, если value найдено; в противном случае возвращает false. После вызова, если значение value было найдено, итератор устанавливается сразу после соответствующего элемента; в противном случае итератор устанавливается позади контейнера. Смотрите также findPrevious(). bool QVectorIterator::findPrevious ( const T & value )Ищет назад значение value, начиная с текущей позиции итератора. Возвращает true, если value найдено; в противном случае возвращает false. После вызова, если значение value было найдено, итератор устанавливается сразу перед соответствующим элементом; в противном случае итератор устанавливается перед контейнером. Смотрите также findNext(). bool QVectorIterator::hasNext () constВозвращает true, если есть хотя бы один элемент впереди итератора, т.е. итератор не позади контейнера; в противном случае возвращает false. Смотрите также hasPrevious() и next(). bool QVectorIterator::hasPrevious () constВозвращает true, если есть хотя бы один элемент позади итератора, т.е. итератор не впереди контейнера; в противном случае возвращает false. Смотрите также hasNext() и previous(). const T & QVectorIterator::next ()Возвращает следующий элемент и перемещает итератор на одну позицию. Вызов этой функции на итераторе, расположенном позади контейнера, приводит к неопределённым результатам. Смотрите также hasNext(), peekNext() и previous(). const T & QVectorIterator::peekNext () constВозвращает следующий элемент без перемещения итератора. Вызов этой функции на итераторе, расположенном позади контейнера, приводит к неопределённым результатам. Смотрите также hasNext(), next() и peekPrevious(). const T & QVectorIterator::peekPrevious () constВозвращает предыдущий элемент без перемещения итератора. Вызов этой функции на итераторе, расположенном перед контейнером, приводит к неопределённым результатам. Смотрите также hasPrevious(), previous() и peekNext(). const T & QVectorIterator::previous ()Возвращает предыдущий элемент и перемещает итератор на одну позицию назад. Вызов этой функции на итераторе, расположенном перед контейнером, приводит к неопределённым результатам. Смотрите также hasPrevious(), peekPrevious() и next(). void QVectorIterator::toBack ()Перемещает итератор позади контейнера (после последнего элемента). Смотрите также toFront() и previous(). void QVectorIterator::toFront ()Перемещает итератор впереди контейнера (перед первым элементом). Смотрите также toBack() и next(). QVectorIterator & QVectorIterator::operator= ( const QVector<T> & vector )Заставляет итератор работать с вектором vector. Итератор устанавливается впереди вектора (перед первым элементом). |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |