迭代器类

QJsonObject::iterator

QJsonObject::iterator 类提供了用于 QJsonObject 的 STL 风格的非常量迭代器。[更多...] 更多...

公共类型

公共函数

iterator()
QStringkey() const
QJsonValueRefvalue() const
booloperator!=(const QJsonObject::iterator &other) const
booloperator!=(const QJsonObject::const_iterator &other) const
QJsonValueRefoperator*() const
QJsonObject::iteratoroperator+(qsizetype j) const
QJsonObject::iterator &operator++()
QJsonObject::iteratoroperator++(int)
QJsonObject::iterator &operator+=(qsizetype j)
QJsonObject::iteratoroperator-(qsizetype j) const
qsizetypeoperator-(QJsonObject::iterator other) const
QJsonObject::iterator &operator--()
QJsonObject::iteratoroperator--(int)
QJsonObject::iterator &operator-=(qsizetype j)
const QJsonValueConstRef *operator->() const
QJsonValueRef *operator->()
booloperator<(const QJsonObject::iterator &other) const
booloperator<(const QJsonObject::const_iterator &other) const
booloperator<=(const QJsonObject::iterator &other) const
booloperator<=(const QJsonObject::const_iterator &other) const
booloperator==(const QJsonObject::iterator &other) const
booloperator==(const QJsonObject::const_iterator &other) const
booloperator>(const QJsonObject::iterator &other) const
booloperator>(const QJsonObject::const_iterator &other) const
booloperator>=(const QJsonObject::iterator &other) const
booloperator>=(const QJsonObject::const_iterator &other) const
QJsonValueRefoperator[](qsizetype j) const

详细描述

QJsonObject::iterator 允许您遍历一个 QJsonObject,并修改特定键下存储的值(但不能修改键)。如果您想遍历一个 const QJsonObject,您应该使用 QJsonObject::const_iterator。在非const QJsonObject 上使用 QJsonObject::const_iterator 也是一种良好的编程习惯,除非您需要通过迭代器更改 QJsonObject。常量迭代器速度略快,并改善了代码的可读性。

默认的 QJsonObject::iterator 构造函数创建一个未初始化的迭代器。您必须使用类似 QJsonObject::begin()、QJsonObject::endQJsonObject::find() 的 QJsonObject 函数初始化它,然后才能开始遍历。

可以在同一对象上使用多个迭代器。但是,当对象被修改时,现有的迭代器将变为悬空。

另请参阅QJsonObject::const_iteratorQt 中的 JSON 支持以及保存和加载游戏

成员类型文档

iterator::iterator_category

std::random_access_iterator_tag 的同义词,表示此迭代器是一个随机访问迭代器。

注意:在 Qt 5.6 之前的版本中,这错误地设置为 std::bidirectional_iterator_tag

成员函数文档

bool iterator::operator==(const QJsonObject::const_iterator &other) const

bool iterator::operator==(const QJsonObject::iterator &other) const

如果 other 指向与此迭代器相同的项,则返回 true;否则返回 false

另请参阅operator!=

bool iterator::operator!=(const QJsonObject::const_iterator &other) const

bool iterator::operator!=(const QJsonObject::iterator &other) const

如果 other 指向与此迭代器不同的项,则返回 true;否则返回 false

另请参阅operator==

bool iterator::operator<(const QJsonObject::const_iterator &other) const

bool iterator::operator<(const QJsonObject::iterator &other) const

如果此迭代器指向的项小于另一个迭代器指向的项,则返回 true

bool iterator::operator<=(const QJsonObject::const_iterator &other) const

布尔值 iterator :: operator<=(const QJsonObject::iterator &other) const

如果此迭代器指向的项目小于或等于由 other 迭代器指向的项目,则返回 true

bool iterator :: operator>(const QJsonObject::const_iterator &other) const

bool iterator :: operator>(const QJsonObject::iterator &other) const

如果此迭代器指向的项目大于由 other 迭代器指向的项目,则返回 true

bool iterator :: operator>=(const QJsonObject::const_iterator &other) const

bool iterator :: operator>=(const QJsonObject::iterator &other) const

如果此迭代器指向的项目大于或等于由 other 迭代器指向的项目,则返回 true

QJsonObject::iterator iterator :: iterator()

构建一个未初始化的迭代器。

在未初始化迭代器上不应调用像 key()、value() 和 operator++() 这样的函数。在使用之前,使用 operator=() 将值分配给它。

另请参阅 QJsonObject::begin() 和 QJsonObject::end()。

QString iterator :: key() const

返回当前项的键。

没有直接的方法通过迭代器更改项的键,尽管可以通过调用 QJsonObject::erase() 然后跟 QJsonObject::insert() 来实现。

另请参阅 value()。

QJsonValueRef iterator :: value() const

返回对当前项值的可修改引用。

您可以通过在赋值操作的左侧使用 value() 来更改项的值。

返回值为类型 QJsonValueRef,它是 QJsonArrayQJsonObject 的辅助类。当您获取类型为 QJsonValueRef 的对象时,您可以像引用 QJsonValue 一样使用它。如果您对其赋值,则赋值将应用于从您获取引用的 QJsonArrayQJsonObject 中的元素。

另请参阅 key() 和 operator*()。

QJsonValueRef iterator :: operator*() const

返回对当前项值的可修改引用。

value()。

返回值为类型 QJsonValueRef,它是 QJsonArrayQJsonObject 的辅助类。当您获取类型为 QJsonValueRef 的对象时,您可以像引用 QJsonValue 一样使用它。如果您对其赋值,则赋值将应用于从您获取引用的 QJsonArrayQJsonObject 中的元素。

另请参阅 key()。

QJsonObject::iterator iterator :: operator+(qsizetype j) const

返回指向该迭代器前方 j 个位置项的迭代器。如果 j 为负,迭代器向前移动。

另请参阅运算符-

QJsonObject::iterator &iterator::operator++()

前缀 ++ 运算符,++i,将迭代器移动到对象中的下一个项,并返回对新当前项的迭代器。

QJsonObject::end() 上调用此函数会导致未定义的结果。

另请参阅运算符--

QJsonObject::iterator iterator::operator++(int)

这是一个重载函数。

后缀 ++ 运算符,i++,将迭代器移动到对象中的下一个项,并返回对先前当前项的迭代器。

QJsonObject::iterator &iterator::operator+=(qsizetype j)

将迭代器向前移动 j 个项。如果 j 为负,迭代器向后移动。

另请参阅运算符-=运算符+

QJsonObject::iterator iterator::operator-(qsizetype j) const

返回指向该迭代器后方 j 个位置项的迭代器。如果 j 为负,迭代器向后移动。

另请参阅运算符+

qsizetype iterator::operator-(QJsonObject::iterator other) const

返回由 other 指向的项和由此迭代器指向的项之间的项数。

QJsonObject::iterator iterator::operator--()

前缀 -- 运算符,--i,使得前一个条目变为当前条目,并返回指向新当前条目的迭代器。

QJsonObject::begin() 上调用此函数会导致未定义的结果。

另请参阅运算符++

QJsonObject::iterator iterator::operator--(int)

这是一个重载函数。

后缀 -- 运算符,i--,使得前一个条目变为当前条目,并返回指向先前当前条目的迭代器。

QJsonObject::iterator &iterator::operator-=(qsizetype j)

使迭代器向后移动 j 个项。如果 j 为负,迭代器向前移动。

另请参阅运算符+=运算符-

const QJsonValueConstRef *iterator::operator->() const

返回对当前项的常量引用的指针。

QJsonValueRef *iterator::operator->()

返回指向当前项目可修改引用的指针。

QJsonValueRef 迭代器::operator[](qsizetype j) const

返回一个可修改的引用,指向从迭代器指针指向的项目开始的偏移 j 的项目(位置 *this + j 的项目)。

此函数提供,使得 QJsonObject 迭代器的作用类似于 C++ 指针。

返回值为类型 QJsonValueRef,它是 QJsonArrayQJsonObject 的辅助类。当您获取类型为 QJsonValueRef 的对象时,您可以像引用 QJsonValue 一样使用它。如果您对其赋值,则赋值将应用于从您获取引用的 QJsonArrayQJsonObject 中的元素。

另请参阅运算符+

© 2024 Qt 公司有限公司。本文档的贡献作者分别享有版权。本文档根据 GNU 自由文档许可版本 1.3 许可,由自由软件基金会发布。Qt 及相关标志是芬兰及其它国家和地区 The Qt Company 有限公司的商标。所有其他商标均为各自所有者财产。