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 does not throw any exception 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!=().