Класс 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 даже для не-const QMap, если вы не нуждаетесь в изменении QMap через итератор. Итераторы const немного быстрее и могут улучшить читаемость кода.
Конструктор 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.2/qmap-const-iterator.html