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 |
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().