Spec-Zone.ru › Qt 5.9

Класс QAssociativeIterable

Класс QAssociativeIterable — это интерфейс итерации для ассоциативного контейнера в QVariant. Подробнее...

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

Публичные типы

класс const_iterator

Публичные функции

const_iterator begin() const
const_iterator end() const
const_iterator find(const QVariant &key) const
int size() const
QVariant value(const QVariant &key) const

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

Класс QAssociativeIterable — это интерфейс итерации для ассоциативного контейнера в QVariant.

Этот класс предоставляет несколько способов доступа к элементам ассоциативного контейнера, содержащегося в QVariant. Экземпляр QAssociativeIterable можно извлечь из QVariant, если его можно преобразовать в QVariantHash или QVariantMap.

QHash<int, QString> mapping;
mapping.insert(7, "Seven");
mapping.insert(11, "Eleven");
mapping.insert(42, "Forty-two");

QVariant variant = QVariant::fromValue(mapping);
if (variant.canConvert<QVariantHash>()) {
    QAssociativeIterable iterable = variant.value<QAssociativeIterable>();
    // Can use foreach over the values:
    foreach (const QVariant &v, iterable) {
        qDebug() << v;
    }
    // Can use C++11 range-for over the values:
    for (const QVariant &v : iterable) {
        qDebug() << v;
    }
    // Can use iterators:
    QAssociativeIterable::const_iterator it = iterable.begin();
    const QAssociativeIterable::const_iterator end = iterable.end();
    for ( ; it != end; ++it) {
        qDebug() << *it; // The current value
        qDebug() << it.key();
        qDebug() << it.value();
    }
}

Сам контейнер не копируется перед итерацией по нему.

См. также QVariant.

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

const_iterator QAssociativeIterable::begin() const

Возвращает QAssociativeIterable::const_iterator для начала контейнера. Это можно использовать для итерации в стиле STL.

См. также end().

const_iterator QAssociativeIterable::end() const

Возвращает QAssociativeIterable::const_iterator для конца контейнера. Это можно использовать для итерации в стиле STL.

См. также begin().

const_iterator QAssociativeIterable::find(const QVariant &key) const

Возвращает QAssociativeIterable::const_iterator для заданного ключа key в контейнере, если типы преобразуемы.

Если ключ не найден, возвращает end().

Это можно использовать для итерации в стиле STL.

Эта функция была введена в Qt 5.5.

См. также begin(), end() и value().

int QAssociativeIterable::size() const

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

QVariant QAssociativeIterable::value(const QVariant &key) const

Возвращает значение для заданного ключа key в контейнере, если типы преобразуемы.

См. также find().

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

Spec-Zone.ru

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