Spec-Zone.ru › Qt 5.12

Класс const_iterator

(QLinkedList::const_iterator)

Класс QLinkedList::const_iterator предоставляет итератор типа const для QLinkedList в стиле STL. Подробнее...

Заголовок: #include <const_iterator>
qmake: QT += core
  • Список всех членов, включая унаследованные

Открытые функции

const_iterator()
const_iterator(iterator other)
const_iterator(const const_iterator &other)
const_iterator(const_iterator &&other)
bool operator!=(const const_iterator &other) const
const T & operator*() const
const_iterator operator+(int j) const
const_iterator & operator++()
const_iterator operator++(int)
const_iterator & operator+=(int j)
const_iterator operator-(int j) const
const_iterator & operator--()
const_iterator operator--(int)
const_iterator & operator-=(int j)
const T * operator->() const
const_iterator & operator=(const const_iterator &other)
const_iterator & operator=(const_iterator &&other)
bool operator==(const const_iterator &other) const

Открытые переменные

QLinkedList::Node * i

Подробное описание

Класс QLinkedList::const_iterator предоставляет итератор типа const для QLinkedList в стиле STL.

QLinkedList поддерживает итераторы в стиле STL и Java. Итераторы в стиле STL более низкого уровня и сложнее в использовании, но немного быстрее. Для разработчиков, знакомых со STL, они имеют преимущество благодаря знакомой парадигме.

QLinkedList<T>::const_iterator позволяет перебирать элементы QLinkedList<T>. Если требуется изменение QLinkedList во время итерации, используйте QLinkedList::iterator. Обычно рекомендуется использовать QLinkedList::const_iterator для не-const QLinkedList, если не требуется изменение списка через итератор. Const-итераторы немного быстрее и улучшают читаемость кода.

Конструктор по умолчанию QLinkedList::const_iterator создаёт неинициализированный итератор. Необходимо инициализировать его с помощью функций, таких как QLinkedList::constBegin(), QLinkedList::constEnd() или QLinkedList::insert() перед началом итерации. Вот типичный цикл, который выводит все элементы, хранящиеся в списке:

QLinkedList<QString> list;
list.append("January");
list.append("February");
...
list.append("December");

QLinkedList<QString>::const_iterator i;
for (i = list.constBegin(); i != list.constEnd(); ++i)
    cout << *i << endl;

Итераторы в стиле STL могут быть использованы в качестве аргументов для общих алгоритмов. Например, вот как найти элемент в списке с помощью алгоритма qFind():

QLinkedList<QString> list;
...
QLinkedList<QString>::iterator it = qFind(list.constBegin(),
                                          list.constEnd(), "Joel");
if (it != list.constEnd())
    cout << "Found Joel" << endl;

Можно использовать несколько итераторов для одного списка. Добавление элементов в список не повлияет на существующие итераторы. Удаление элементов сделает итераторы, указывающие на удалённые элементы, висячими (dangling).

Предупреждение: Итераторы для неявно-разделяемых контейнеров не работают точно как итераторы STL. Следует избегать копирования контейнера, пока активны итераторы на этом контейнере. Для получения дополнительной информации, см. Проблема итераторов при неявном совместном использовании.

См. также QLinkedList::iterator и QLinkedListIterator.

Документация по членам-функциям

const_iterator::const_iterator()

Создаёт неинициализированный итератор.

Функции, такие как operator*() и operator++(), не должны вызываться для неинициализированного итератора. Используйте operator=() для присвоения значения перед использованием.

См. также QLinkedList::constBegin() и QLinkedList::constEnd().

const_iterator::const_iterator(iterator other)

Создаёт копию other.

const_iterator::const_iterator(const const_iterator &other)

Создаёт копию other.

const_iterator::const_iterator(const_iterator &&other)

Создаёт экземпляр const_iterator по умолчанию.

bool const_iterator::operator!=(const const_iterator &other) const

Возвращает true если other указывает на другой элемент, чем этот итератор; в противном случае возвращает false.

См. также operator==().

const T &const_iterator::operator*() const

Возвращает ссылку на текущий элемент.

См. также operator->().

const_iterator const_iterator::operator+(int j) const

Возвращает итератор к элементу, находящемуся на j позиций вперёд от текущего итератора. (Если j отрицательно, итератор перемещается назад.)

Эта операция может быть медленной для больших значений j.

См. также operator-().

const_iterator &const_iterator::operator++()

Префиксный оператор ++ (++it) перемещает итератор к следующему элементу в списке и возвращает итератор к новому текущему элементу.

Вызов этой функции для QLinkedList<T>::constEnd() приводит к неопределённому результату.

См. также operator--().

const_iterator const_iterator::operator++(int)

Это перегруженная функция.

Постфиксный оператор ++ (it++) перемещает итератор к следующему элементу в списке и возвращает итератор к ранее текущему элементу.

const_iterator &const_iterator::operator+=(int j)

Перемещает итератор на j элементов. (Если j отрицательно, итератор перемещается назад.)

Эта операция может быть медленной для больших значений j.

См. также operator-=() и operator+().

const_iterator const_iterator::operator-(int j) const

Данная функция возвращает итератор к элементу, расположенному на j позиций назад от текущего итератора. (Если j отрицательно, итератор идёт вперёд.)

Эта операция может быть медленной для больших значений j.

См. также operator+().

const_iterator &const_iterator::operator--()

Префиксный оператор -- (--it) устанавливает предыдущий элемент текущим и возвращает итератор к новому текущему элементу.

Вызов этой функции для QLinkedList::begin() приводит к неопределённым результатам.

См. также operator++().

const_iterator const_iterator::operator--(int)

Это перегруженная функция.

Постфиксный оператор -- (it--) устанавливает предыдущий элемент текущим и возвращает итератор к ранее текущему элементу.

const_iterator &const_iterator::operator-=(int j)

Перемещает итератор назад на j элементов. (Если j отрицательно, итератор идёт вперёд.)

Эта операция может быть медленной для больших значений j.

См. также operator+=() и operator-().

const T *const_iterator::operator->() const

Возвращает указатель на текущий элемент.

См. также operator*().

const_iterator &const_iterator::operator=(const const_iterator &other)

Присваивает other данному итератору.

const_iterator &const_iterator::operator=(const_iterator &&other)

Оператор перемещающего присваивания.

bool const_iterator::operator==(const const_iterator &other) const

Возвращает true если other указывает на тот же элемент, что и этот итератор; в противном случае возвращает false.

См. также operator!=().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qlinkedlist-const-iterator.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API