Класс const_iterator
(QSet::const_iterator)Класс QSet::const_iterator предоставляет итератор типа const для QSet в стиле STL. Подробнее...
| Заголовок: | #include <QSet> |
| qmake: | QT += core |
| С тех пор: | Qt 4.2 |
Типы общедоступного доступа
| typedef | iterator_category |
Открытые функции
| const_iterator() | |
| 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) |
| bool | operator==(const const_iterator &other) const |
Подробное описание
Класс QSet::const_iterator предоставляет итератор типа const для QSet в стиле STL.
QSet поддерживает как итераторы в стиле STL, так и итераторы в стиле Java. Итераторы в стиле STL более низкого уровня и более сложны в использовании, но при этом немного быстрее и знакомы разработчикам, которые уже знакомы со STL.
QSet<Key, T>::const_iterator позволяет итерироваться по QSet. Если необходимо изменить QSet во время итерации, следует использовать QSet::iterator вместо него. В общем случае рекомендуется использовать QSet::const_iterator даже для неконстантных QSet, если только не требуется изменение QSet через итератор. Константные итераторы немного быстрее и могут повысить читаемость кода.
Конструктор QSet::const_iterator по умолчанию создаёт неинициализированный итератор. Его необходимо инициализировать с помощью функций, таких как QSet::begin(), QSet::end() или QSet::insert() перед началом итерации. Вот типичный цикл, который выводит все элементы, хранящиеся в множестве:
QSet<QString> set;
set << "January" << "February" << ... << "December";
QSet<QString>::const_iterator i;
for (i = set.begin(); i != set.end(); ++i)
qDebug() << *i; Итераторы в стиле STL могут использоваться в качестве аргументов для обобщённых алгоритмов. Например, вот как найти элемент в множестве, используя алгоритм qFind():
QSet<QString> set;
...
QSet<QString>::iterator it = qFind(set.begin(), set.end(), "Jeanette");
if (it != set.constEnd())
cout << "Found Jeanette" << endl; Предупреждение: Итераторы для неявно используемых контейнеров не работают точно как итераторы STL. Следует избегать копирования контейнера, пока активны итераторы на этом контейнере. Для получения более подробной информации см. Проблема итератора неявного совместного использования.
См. также QSet::iterator и QSetIterator.
Документация по типам членов
typedef const_iterator::iterator_category
Синонимы для std::bidirectional_iterator_tag, указывающие, что эти итераторы являются двунаправленными.
Документация по функциям членов
const_iterator::const_iterator()
Конструирует неинициализированный итератор.
Функции, такие как operator*() и operator++(), не должны вызываться для неинициализированного итератора. Используйте operator=() для присвоения значения перед использованием.
См. также QSet::begin() и QSet::end().
const_iterator::const_iterator(const const_iterator &other)
Конструирует копию other.
const_iterator::const_iterator(const iterator &other)
Это перегруженная функция.
Конструирует копию other.
Эта функция была добавлена в Qt 4.2.
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) перемещает итератор к следующему элементу множества и возвращает итератор к новому текущему элементу.
Вызов этой функции для QSet::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) делает предыдущий элемент текущим и возвращает итератор к новому текущему элементу.
Вызов этой функции для QSet::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 этому итератору.
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.6/qset-const-iterator.html