QKeyValueIterator Class

template <typename Key, typename T, typename Iterator> class QKeyValueIterator

Iterator over the key/value pairs of an associative container. More...

Header: #include <QKeyValueIterator>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Public Functions

QKeyValueIterator()
QKeyValueIterator(Iterator o)
Iterator base() const
std::pair<Key, T> operator*() const
QKeyValueIterator<Key, T, Iterator> &operator++()
QKeyValueIterator<Key, T, Iterator> operator++(int)
QKeyValueIterator<Key, T, Iterator> &operator--()
QKeyValueIterator<Key, T, Iterator> operator--(int)
QKeyValueIterator<Key, T, Iterator>::pointer operator->() const
bool operator!=(QKeyValueIterator<Key, T, Iterator> lhs, QKeyValueIterator<Key, T, Iterator> rhs)
bool operator==(QKeyValueIterator<Key, T, Iterator> lhs, QKeyValueIterator<Key, T, Iterator> rhs)

Detailed Description

The QKeyValueIterator class provides an STL-style iterator for returning key/value pairs from associative containers like QHash and QMap. It supports the same API as the STL associative containers, i.e. getting a key/value pair when iterating through the container.

This will allow for better interoperability between QMap, QHash and friends and STL-style algorithms.

Warning: Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read Implicit sharing iterator problem.

Member Function Documentation

QKeyValueIterator::QKeyValueIterator()

Constructs a default QKeyValueIterator.

[explicit constexpr noexcept(...)] QKeyValueIterator::QKeyValueIterator(Iterator o)

Constructs a QKeyValueIterator on top of o.

Note: This function is noexcept when std::is_nothrow_move_constructible<Iterator>::value is true.

Iterator QKeyValueIterator::base() const

Returns the underlying iterator this QKeyValueIterator is based on.

std::pair<Key, T> QKeyValueIterator::operator*() const

Returns the current entry as a pair.

QKeyValueIterator<Key, T, Iterator> &QKeyValueIterator::operator++()

The prefix ++ operator (++i) advances the iterator to the next item in the container and returns the iterator.

Note: Advancing the iterator past its container's end() constitutes undefined behavior.

See also operator--().

QKeyValueIterator<Key, T, Iterator> QKeyValueIterator::operator++(int)

This is an overloaded function.

The postfix ++ operator (i++) advances the iterator to the next item in the container and returns the iterator's prior value.

Note: Advancing the iterator past its container's end() constitutes undefined behavior.

QKeyValueIterator<Key, T, Iterator> &QKeyValueIterator::operator--()

The prefix c{–} operator (--i) backs the iterator up to the previous item in the container and returns the iterator.

Note: Backing up an iterator to before its container's begin() constitutes undefined behavior.

See also operator++().

QKeyValueIterator<Key, T, Iterator> QKeyValueIterator::operator--(int)

This is an overloaded function.

The postfix c{–} operator (i--) backs the iterator up to the previous item in the container and returns the iterator's prior value.

Note: Backing up an iterator to before its container's begin() constitutes undefined behavior.

QKeyValueIterator<Key, T, Iterator>::pointer QKeyValueIterator::operator->() const

Returns the current entry as a pointer-like object to the pair.

See also operator*().

Related Non-Members

[noexcept] bool operator!=(QKeyValueIterator<Key, T, Iterator> lhs, QKeyValueIterator<Key, T, Iterator> rhs)

Returns true if rhs points to a different item than lhs otherwise returns false.

See also operator==().

[noexcept] bool operator==(QKeyValueIterator<Key, T, Iterator> lhs, QKeyValueIterator<Key, T, Iterator> rhs)

Returns true if rhs points to the same item as lhs otherwise returns false.

See also operator!=().

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.