迭代器类
类 QJsonObject::iteratorQJsonObject::iterator 类提供了用于 QJsonObject 的 STL 风格的非常量迭代器。[更多...] 更多...
- 所有成员列表,包括继承成员
- iterator 是 Qt JSON 支持的一部分。
公共类型
公共函数
iterator() | |
QString | key() const |
QJsonValueRef | value() const |
bool | operator!=(const QJsonObject::iterator &other) const |
bool | operator!=(const QJsonObject::const_iterator &other) const |
QJsonValueRef | operator*() const |
QJsonObject::iterator | operator+(qsizetype j) const |
QJsonObject::iterator & | operator++() |
QJsonObject::iterator | operator++(int) |
QJsonObject::iterator & | operator+=(qsizetype j) |
QJsonObject::iterator | operator-(qsizetype j) const |
qsizetype | operator-(QJsonObject::iterator other) const |
QJsonObject::iterator & | operator--() |
QJsonObject::iterator | operator--(int) |
QJsonObject::iterator & | operator-=(qsizetype j) |
const QJsonValueConstRef * | operator->() const |
QJsonValueRef * | operator->() |
bool | operator<(const QJsonObject::iterator &other) const |
bool | operator<(const QJsonObject::const_iterator &other) const |
bool | operator<=(const QJsonObject::iterator &other) const |
bool | operator<=(const QJsonObject::const_iterator &other) const |
bool | operator==(const QJsonObject::iterator &other) const |
bool | operator==(const QJsonObject::const_iterator &other) const |
bool | operator>(const QJsonObject::iterator &other) const |
bool | operator>(const QJsonObject::const_iterator &other) const |
bool | operator>=(const QJsonObject::iterator &other) const |
bool | operator>=(const QJsonObject::const_iterator &other) const |
QJsonValueRef | operator[](qsizetype j) const |
详细描述
QJsonObject::iterator 允许您遍历一个 QJsonObject,并修改特定键下存储的值(但不能修改键)。如果您想遍历一个 const QJsonObject,您应该使用 QJsonObject::const_iterator。在非const QJsonObject 上使用 QJsonObject::const_iterator 也是一种良好的编程习惯,除非您需要通过迭代器更改 QJsonObject。常量迭代器速度略快,并改善了代码的可读性。
默认的 QJsonObject::iterator 构造函数创建一个未初始化的迭代器。您必须使用类似 QJsonObject::begin()、QJsonObject::end 或 QJsonObject::find() 的 QJsonObject 函数初始化它,然后才能开始遍历。
可以在同一对象上使用多个迭代器。但是,当对象被修改时,现有的迭代器将变为悬空。
另请参阅QJsonObject::const_iterator、Qt 中的 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,它是 QJsonArray 和 QJsonObject 的辅助类。当您获取类型为 QJsonValueRef 的对象时,您可以像引用 QJsonValue 一样使用它。如果您对其赋值,则赋值将应用于从您获取引用的 QJsonArray 或 QJsonObject 中的元素。
QJsonValueRef iterator :: operator*() const
返回对当前项值的可修改引用。
同 value()。
返回值为类型 QJsonValueRef,它是 QJsonArray 和 QJsonObject 的辅助类。当您获取类型为 QJsonValueRef 的对象时,您可以像引用 QJsonValue 一样使用它。如果您对其赋值,则赋值将应用于从您获取引用的 QJsonArray 或 QJsonObject 中的元素。
另请参阅 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,它是 QJsonArray 和 QJsonObject 的辅助类。当您获取类型为 QJsonValueRef 的对象时,您可以像引用 QJsonValue 一样使用它。如果您对其赋值,则赋值将应用于从您获取引用的 QJsonArray 或 QJsonObject 中的元素。
另请参阅运算符+。
© 2024 Qt 公司有限公司。本文档的贡献作者分别享有版权。本文档根据 GNU 自由文档许可版本 1.3 许可,由自由软件基金会发布。Qt 及相关标志是芬兰及其它国家和地区 The Qt Company 有限公司的商标。所有其他商标均为各自所有者财产。