Класс const_iterator
класс QMap::const_iteratorКласс QMap::const_iterator предоставляет итератор типа const для QMap в стиле STL. Подробнее...
Общедоступные типы
| iterator_category |
Общедоступные функции
| const_iterator(const iterator &other) | |
| const_iterator() | |
| const Key & | key() const |
| const T & | value() const |
| const T & | operator*() const |
| const_iterator & | operator++() |
| const_iterator | operator++(int) |
| const_iterator & | operator--() |
| const_iterator | operator--(int) |
| const T * | operator->() const |
Связанные нечлены
| bool | operator!=(const const_iterator &lhs, const const_iterator &rhs) |
| bool | operator==(const const_iterator &lhs, const const_iterator &rhs) |
Подробное описание
QMap имеет как итераторы в стиле STL, так и итераторы в стиле Java. Итераторы в стиле STL более низкого уровня и сложнее в использовании; с другой стороны, они немного быстрее и, для разработчиков, уже знакомых со STL, имеют преимущество в привычности.
QMap<Key, T>::const_iterator позволяет итерироваться по QMap. Если вы хотите изменить QMap во время итерирования, следует использовать QMap::iterator вместо него. Обычно рекомендуется использовать QMap::const_iterator с не-константным QMap, если вам не требуется изменять QMap через итератор. Константные итераторы немного быстрее и могут улучшить читаемость кода.
По умолчанию конструктор QMap::const_iterator создаёт неинициализированный итератор. Необходимо его инициализировать с помощью функции QMap, например QMap::constBegin(), QMap::constEnd() или QMap::find(), прежде чем начинать итерирование. Вот типичный цикл, который выводит все пары (ключ, значение) хранящиеся в карте:
QMap<QString, int> map;
map.insert("January", 1);
map.insert("February", 2);
...
map.insert("December", 12);
QMap<QString, int>::const_iterator i;
for (i = map.constBegin(); i != map.constEnd(); ++i)
cout << i.key() << ": " << i.value() << Qt::endl; В отличие от QHash, который хранит элементы в произвольном порядке, QMap хранит элементы упорядоченными по ключу.
Несколько итераторов могут быть использованы для одной и той же карты. Если вы добавляете элементы в карту, существующие итераторы останутся валидными. Если вы удаляете элементы из карты, итераторы, указывающие на удалённые элементы, станут висячими.
Предупреждение: Итераторы для неявно разделяемых контейнеров не работают точно так же, как итераторы STL. Следует избегать копирования контейнера, пока активны итераторы на этом контейнере. Для получения дополнительной информации, см. Проблема итераторов неявного совместного использования.
См. также QMap::iterator, QMap::key_iterator и QMapIterator.
Документация по типам членов
[alias] const_iterator::iterator_category
Синоним для std::bidirectional_iterator_tag, указывающий, что этот итератор является двунаправленным.
Документация по функциям-членам
const_iterator::const_iterator(const iterator &other)
Создаёт копию other.
const_iterator::const_iterator()
Создаёт неинициализированный итератор.
Функции, такие как key(), value() и operator++(), не должны вызываться для неинициализированного итератора. Используйте operator=() для присвоения значения перед использованием.
См. также QMap::constBegin() и QMap::constEnd().
const Key &const_iterator::key() const
Возвращает ключ текущего элемента.
См. также value().
const T &const_iterator::value() const
Возвращает значение текущего элемента.
См. также key() и operator*().
const T &const_iterator::operator*() const
Возвращает значение текущего элемента.
То же, что и value().
См. также key().
const_iterator &const_iterator::operator++()
Префиксный оператор ++ (++i) продвигает итератор к следующему элементу в карте и возвращает итератор на новый текущий элемент.
Вызов этой функции для QMap::end() приводит к неопределённым результатам.
См. также operator--().
const_iterator const_iterator::operator++(int)
Это перегруженная функция.
Постфиксный оператор ++ (i++) продвигает итератор к следующему элементу в карте и возвращает итератор на ранее текущий элемент.
const_iterator &const_iterator::operator--()
Префиксный оператор -- (--i) делает предыдущий элемент текущим и возвращает итератор, указывающий на новый текущий элемент.
Вызов этой функции для QMap::begin() приводит к неопределённым результатам.
См. также operator++().
const_iterator const_iterator::operator--(int)
Это перегруженная функция.
Постфиксный оператор -- (i--) делает предыдущий элемент текущим и возвращает итератор, указывающий на ранее текущий элемент.
const T *const_iterator::operator->() const
Возвращает указатель на значение текущего элемента.
См. также value().
Связанные нечлены
bool operator!=(const const_iterator &lhs, const const_iterator &rhs)
Возвращает true , если lhs указывает на другой элемент, чем итератор rhs; в противном случае возвращает false.
См. также operator==().
bool operator==(const const_iterator &lhs, const const_iterator &rhs)
Возвращает true , если lhs указывает на тот же элемент, что и итератор rhs; в противном случае возвращает false.
См. также operator!=().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qmap-const-iterator.html