本页内容

QKeyValueIterator Class

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

用于遍历关联容器中键值对的迭代器。更多内容...

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

公共函数

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

详细说明

QKeyValueIterator 类提供了一个 STL 风格的迭代器,用于从关联容器(如QHash 和QMap )中返回键/值对。模板参数Key 指定键类型,T 指定值类型,Iterator 是底层迭代器类型,Traits 指定迭代器特性。 它支持与 STL 关联容器相同的 API,即在遍历容器时获取键值对。

这将有助于提升QMap 、QHash 及其相关容器与 STL 风格算法之间的互操作性。

警告: 隐式共享容器上的迭代器其 工作方式与 STL 迭代器并不完全相同。当迭代器在容器上处于活动状态时,应避免复制该容器。有关更多信息,请参阅《隐式共享迭代器问题》。

成员函数文档

[default] QKeyValueIterator::QKeyValueIterator()

构建一个默认的 QKeyValueIterator。

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

基于o 构建一个QKeyValueIterator。

注意: 当 `std::is_nothrow_move_constructible<Iterator>::value ` 为 `true`时,此 函数为 `noexcept`。

Iterator QKeyValueIterator::base() const

返回QKeyValueIterator 所基于的底层迭代器。

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

将当前条目作为一个元组返回。

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

前缀运算符++ (++i )将迭代器向前移动到容器中的下一个元素,并返回该迭代器。

注意:将 迭代器向前移动至 超出其容器的end()位置将导致未定义行为。

另请参阅 operator--()。

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

后缀运算符 `++ `(i++ )将迭代器向前移动到容器中的下一个元素,并返回迭代器之前的值。

注意:将 迭代器推进到 超出其容器end()所指位置的行为将导致未定义行为。

这是一个重载函数。

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

前缀 c{–} 运算符(--i )将迭代器向后移动到容器中的上一个元素处,并返回该迭代器。

注意:将 迭代器回退 到其容器begin()之前的位置会导致未定义行为。

另请参阅 operator++()。

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

后缀运算符 c{–}(i-- )将迭代器向后移动到容器中的上一个元素处,并返回迭代器之前的值。

注意:将 迭代器回退 到其容器`begin()`之前会导致未定义行为。

这是一个重载函数。

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

将当前条目作为指向该对的指针样式对象返回。

另请参阅 operator*()。

相关的非成员函数

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

如果rhs 指向的对象与lhs 不同,则返回true ;否则返回false 。

另请参阅 operator==()。

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

如果rhs 指向与lhs 相同的项,则返回true ;否则返回false 。

另请参阅 operator!=()。

© 2026 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.