Класс const_iterator
(QLinkedList::const_iterator)Класс QLinkedList::const_iterator предоставляет итератор типа const iterator в стиле STL для QLinkedList. Подробнее...
| Заголовок: | #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::const_iterator предоставляет итератор типа const iterator в стиле STL для QLinkedList.
QLinkedList имеет итераторы в стиле STL и в стиле Java. Итераторы в стиле STL более низкого уровня и сложнее в использовании, но немного быстрее; для разработчиков, знакомых со STL, они имеют преимущество в плане понимания.
QLinkedList<T>::const_iterator позволяет итерироваться по QLinkedList<T>. Если требуется изменение QLinkedList во время итерирования, необходимо использовать QLinkedList::iterator. Использование QLinkedList::const_iterator на не-константном QLinkedList также является хорошей практикой, если не нужно изменять 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; Несколько итераторов могут использоваться в одном списке. Если вы добавляете элементы в список, существующие итераторы останутся валидными. Если вы удаляете элементы из списка, итераторы, указывающие на удалённые элементы, станут висячими.
Предупреждение: Итераторы на контейнерах с неявным совместным доступом не работают точно как итераторы 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/archives/qt-5.11/qlinkedlist-const-iterator.html