Qt 5.9 | Qt Core | C++ Classes | QAssociativeIterable

Qt 5.9.9 Reference Documentation

# QAssociativeIterable Class

The QAssociativeIterable class is an iterable interface for an associative container in a QVariant. More...

Header: | #include <QAssociativeIterable>
qmake: | QT += core
Since: | Qt 5.2

- List of all members, including inherited members

## Public Types

class | const_iterator

## Public Functions

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

## Detailed Description

The QAssociativeIterable class is an iterable interface for an associative container in a QVariant.

This class allows several methods of accessing the elements of an associative container held within a QVariant. An instance of QAssociativeIterable can be extracted from a QVariant if it can be converted to a QVariantHash or 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();
          }
      }

The container itself is not copied before iterating over it.

See also QVariant.

## Member Function Documentation

### const_iterator QAssociativeIterable::begin() const

Returns a QAssociativeIterable::const_iterator for the beginning of the container. This can be used in stl-style iteration.

See also end().

### const_iterator QAssociativeIterable::end() const

Returns a QAssociativeIterable::const_iterator for the end of the container. This can be used in stl-style iteration.

See also begin().

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

Returns a QAssociativeIterable::const_iterator for the given key key in the container, if the types are convertible.

If the key is not found, returns end().

This can be used in stl-style iteration.

This function was introduced in Qt 5.5.

See also begin(), end(), and value().

### int QAssociativeIterable::size() const

Returns the number of elements in the container.

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

Returns the value for the given key in the container, if the types are convertible.

See also find().