QCborArray Class
QCborArray 类用于保存 CBOR 元素数组。更多
头文件: | #include <QCborArray> |
CMake.QCborArray 类 | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 所有成员(包括继承成员)的列表
- QCborArray 是Qt 中 CBOR 支持的一部分。
该类具有很强的可比性。
该类与 QCborValueConstRef 具有很强的可比性。
注意:该类中的所有函数都是可重入的。
公共类型
class | ConstIterator |
class | Iterator |
const_iterator | |
const_pointer | |
const_reference | |
difference_type | |
iterator | |
pointer | |
reference | |
size_type | |
value_type |
公共函数
QCborArray() | |
QCborArray(std::initializer_list<QCborValue> args) | |
QCborArray(const QCborArray &other) | |
~QCborArray() | |
void | append(QCborValue &&value) |
void | append(const QCborValue &value) |
QCborValue | at(qsizetype i) const |
QCborArray::iterator | begin() |
QCborArray::const_iterator | begin() const |
QCborArray::const_iterator | cbegin() const |
QCborArray::const_iterator | cend() const |
void | clear() |
int | compare(const QCborArray &other) const |
QCborArray::const_iterator | constBegin() const |
QCborArray::const_iterator | constEnd() const |
bool | contains(const QCborValue &value) const |
bool | empty() const |
QCborArray::iterator | end() |
QCborArray::const_iterator | end() const |
QCborArray::iterator | erase(QCborArray::const_iterator it) |
QCborArray::iterator | erase(QCborArray::iterator it) |
QCborValue | extract(QCborArray::ConstIterator it) |
QCborValue | extract(QCborArray::Iterator it) |
QCborValueRef | first() |
QCborValue | first() const |
void | insert(qsizetype i, QCborValue &&value) |
void | insert(qsizetype i, const QCborValue &value) |
QCborArray::iterator | insert(QCborArray::const_iterator before, const QCborValue &value) |
QCborArray::iterator | insert(QCborArray::iterator before, const QCborValue &value) |
bool | isEmpty() const |
QCborValueRef | last() |
QCborValue | last() const |
void | pop_back() |
void | pop_front() |
void | prepend(QCborValue &&value) |
void | prepend(const QCborValue &value) |
void | push_back(const QCborValue &t) |
void | push_front(const QCborValue &t) |
void | removeAt(qsizetype i) |
void | removeFirst() |
void | removeLast() |
qsizetype | size() const |
void | swap(QCborArray &other) |
QCborValue | takeAt(qsizetype i) |
QCborValue | takeFirst() |
QCborValue | takeLast() |
QCborValue | toCborValue() const |
QJsonArray | toJsonArray() const |
QVariantList | toVariantList() const |
QCborArray | operator+(const QCborValue &v) const |
QCborArray & | operator+=(const QCborValue &v) |
QCborArray & | operator<<(const QCborValue &v) |
QCborArray & | operator=(const QCborArray &other) |
QCborValueRef | operator[](qsizetype i) |
const QCborValue | operator[](qsizetype i) const |
静态公共成员
QCborArray | fromJsonArray(const QJsonArray &array) |
(since 6.3) QCborArray | fromJsonArray(QJsonArray &&array) |
QCborArray | fromStringList(const QStringList &list) |
QCborArray | fromVariantList(const QVariantList &list) |
相关非成员
bool | operator!=(const QCborArray &lhs, const QCborArray &rhs) |
bool | operator<(const QCborArray &lhs, const QCborArray &rhs) |
bool | operator<=(const QCborArray &lhs, const QCborArray &rhs) |
bool | operator==(const QCborArray &lhs, const QCborArray &rhs) |
bool | operator>(const QCborArray &lhs, const QCborArray &rhs) |
bool | operator>=(const QCborArray &lhs, const QCborArray &rhs) |
详细说明
该类可用于在 CBOR(数组)中保存一个顺序容器。CBOR 是简明二进制对象表示法(Concise Binary Object Representation),是一种非常紧凑的二进制数据编码形式,是 JSON 的超集。它是由 IETF 受限 RESTful 环境(CoRE)工作组创建的,该工作组已将其用于许多新的 RFC 中。它旨在与CoAP 协议一起使用。
QCborArray 与QVariantList 和QJsonArray 非常相似,其 API 与这两个类几乎完全相同。它也可以与这两个类进行转换,但在某些转换中可能会丢失一些信息。
另请参阅 QCborValue,QCborMap,QJsonArray,QList,解析和显示 CBOR 数据、序列化转换器以及保存和加载游戏。
成员类型文档
QCborArray::const_iterator
QCborArray::ConstIterator 的同义词。
QCborArray::const_pointer
const QCborValue *
的类型定义,以便与通用算法兼容。
QCborArray::const_reference
const QCborValue &
的类型定义,以便与通用算法兼容。
QCborArray::difference_type
qsizetype 的类型定义。
QCborArray::iterator
QCborArray::Iterator 的同义词。
QCborArray::pointer
QCborValue *
的类型定义,以便与通用算法兼容。
QCborArray::reference
QCborValue &
的类型定义,以便与通用算法兼容。
QCborArray::size_type
qsizetype 的类型定义。
QCborArray::value_type
QCborArray 中可保存的值的类型:即QCborValue 。
成员函数文档
void QCborArray::insert(qsizetype i, QCborValue &&value)
void QCborArray::insert(qsizetype i, const QCborValue &value)
将value 插入数组中i 的位置。如果i 为-1,则将条目追加到数组中。如果i 大于数组之前的大小,则用无效条目填充数组。
另请参阅 at(),operator[](),first(),last(),prepend(),append(),removeAt(),takeAt() 和extract() 。
QCborValue QCborArray::extract(QCborArray::ConstIterator it)
QCborValue QCborArray::extract(QCborArray::Iterator it)
从数组中提取位于迭代器it 所指示位置的值,并返回提取的值。
另请参阅 insert()、erase()、takeAt() 和removeAt() 。
void QCborArray::prepend(QCborValue &&value)
void QCborArray::prepend(const QCborValue &value)
在数组已包含的其他元素之前,将value 预置到数组中。
另请参阅 at()、operator[]()、first()、last()、insert()、append()、removeAt() 和takeAt()。
void QCborArray::append(QCborValue &&value)
void QCborArray::append(const QCborValue &value)
在数组中已包含的所有其他元素之后,将value 追加到数组中。
另请参阅 at()、operator[]()、first()、last()、insert()、prepend()、removeAt() 和takeAt()。
QCborArray::iterator QCborArray::insert(QCborArray::const_iterator before, const QCborValue &value)
QCborArray::iterator QCborArray::insert(QCborArray::iterator before, const QCborValue &value)
这是一个重载函数。
在元素before 之前向数组中插入value ,并返回指向刚插入元素的数组迭代器。
另请参阅 erase()、removeAt()、prepend() 和append() 。
QCborArray::iterator QCborArray::erase(QCborArray::const_iterator it)
QCborArray::iterator QCborArray::erase(QCborArray::iterator it)
从数组中删除数组迭代器it 指向的元素,然后返回指向下一个元素的迭代器(在数组中与it 所处位置相同的元素)。
另请参见 insert()、removeAt()、takeAt()、takeFirst() 和takeLast()。
[noexcept]
QCborArray::QCborArray()
构造一个空的 QCborArray。
QCborArray::QCborArray(std::initializer_list<QCborValue> args)
从args 中的 C++ 括弧列表初始化该 QCborArray,如下例所示:
QCborArray a = { null, 0, 1, 1.5, 2, "Hello", QByteArray("World") };
[noexcept]
QCborArray::QCborArray(const QCborArray &other)
将other 的内容复制到此对象中。
[noexcept]
QCborArray::~QCborArray()
销毁QCborArray 并释放所有相关资源。
QCborValue QCborArray::at(qsizetype i) const
返回数组中i 位置的QCborValue 元素。
如果数组小于i ,该函数将返回一个包含未定义值的QCborValue 。因此,该函数无法区分数组不够大和数组以未定义值开始的两种情况。
另请参见 operator[]()、first()、last()、insert()、prepend()、append()、removeAt() 和takeAt()。
QCborArray::iterator QCborArray::begin()
返回指向数组中第一个项目的数组迭代器。如果数组为空,则该函数的返回值与end() 相同。
另请参阅 constBegin() 和end()。
QCborArray::const_iterator QCborArray::begin() const
返回指向数组中第一个项目的数组迭代器。如果数组为空,则该函数的返回值与end() 相同。
另请参阅 constBegin() 和constEnd()。
QCborArray::const_iterator QCborArray::cbegin() const
返回指向数组中第一个项目的数组迭代器。如果数组为空,则该函数的返回值与end() 相同。
另请参阅 constBegin() 和constEnd()。
QCborArray::const_iterator QCborArray::cend() const
返回数组迭代器,指向数组中最后一个元素之后。
另请参阅 constBegin() 和constEnd()。
void QCborArray::clear()
清空数组。
另请参见 isEmpty()。
[noexcept]
int QCborArray::compare(const QCborArray &other) const
比较此数组和other ,依次比较每个元素,并返回一个整数,表示此数组应在other 之前(如果结果为负)还是之后(如果结果为正)排序。如果函数返回 0,则两个数组相等,包含相同的元素。
有关 CBOR 排序顺序的更多信息,请参阅QCborValue::compare() 。
另请参阅 QCborValue::compare()、QCborMap::compare() 和operator==()。
QCborArray::const_iterator QCborArray::constBegin() const
返回指向数组中第一个项目的数组迭代器。如果数组为空,则该函数的返回值与end() 相同。
QCborArray::const_iterator QCborArray::constEnd() const
返回数组迭代器,指向数组中最后一个元素之后。
另请参阅 constBegin() 和end()。
bool QCborArray::contains(const QCborValue &value) const
如果此数组包含的元素等于value ,则返回 true。
bool QCborArray::empty() const
isEmpty() 的同义词。提供该函数是为了与使用标准库 API 的通用代码兼容。
如果该数组为空,则返回 true(size() ==0)。
QCborArray::iterator QCborArray::end()
返回数组迭代器,指向数组中最后一个元素之后。
QCborArray::const_iterator QCborArray::end() const
返回数组迭代器,指向数组中最后一个元素之后。
另请参阅 constBegin() 和constEnd()。
QCborValueRef QCborArray::first()
返回数组第一个QCborValue 的引用。数组不能为空。
QCborValueRef 的 API 与QCborValue 完全相同,但有一个重要区别:如果为其赋值,该数组将根据新值进行更新。
另请参阅 operator[](),at(),last(),insert(),prepend(),append(),removeAt(), 和takeAt().
QCborValue QCborArray::first() const
返回数组的第一个QCborValue 。
如果数组为空,该函数将返回一个包含未定义值的QCborValue 。因此,该函数无法区分数组不够大和数组以未定义值结束的两种情况。
另请参见 operator[]()、at()、last()、insert()、prepend()、append()、removeAt() 和takeAt()。
[static]
QCborArray QCborArray::fromJsonArray(const QJsonArray &array)
使用 QCborValue::fromJson() 将array 数组中的所有 JSON 项目转换为 CBOR,并返回由这些元素组成的 CBOR 数组。
这种转换是无损的,因为 CBOR 类型系统是 JSON 类型系统的超集。此外,使用toJsonArray() 可以将此函数返回的数组转换回原始的array 。
另请参见 toJsonArray()、toVariantList()、QCborValue::fromJsonValue() 和QCborMap::fromJsonObject()。
[static noexcept, since 6.3]
QCborArray QCborArray::fromJsonArray(QJsonArray &&array)
这是一个重载函数。
该函数在 Qt 6.3 中引入。
[static]
QCborArray QCborArray::fromStringList(const QStringList &list)
返回QCborArray ,其中包含在list 列表中找到的所有字符串。
另请参阅 fromVariantList() 和fromJsonArray()。
[static]
QCborArray QCborArray::fromVariantList(const QVariantList &list)
使用QCborValue::fromVariant() 将list 中的所有项目转换为 CBOR,并返回由这些元素组成的数组。
从QVariant 转换不是完全无损的。更多信息请参阅QCborValue::fromVariant() 中的文档。
另请参阅 toVariantList()、fromStringList()、fromJsonArray() 和QCborMap::fromVariantMap()。
bool QCborArray::isEmpty() const
如果QCborArray 为空(即size() 为 0),则返回 true。
QCborValueRef QCborArray::last()
返回数组最后一个QCborValue 的引用。数组不能为空。
QCborValueRef 的 API 与QCborValue 完全相同,但有一个重要区别:如果为其赋值,该数组将根据新值进行更新。
另请参阅 operator[](),at(),first(),insert(),prepend(),append(),removeAt(), 和takeAt().
QCborValue QCborArray::last() const
返回数组的最后一个QCborValue 。
如果数组为空,该函数将返回一个包含未定义值的QCborValue 。因此,使用该函数无法区分数组不够大和数组结尾为未定义值两种情况。
另请参见 operator[]()、at()、first()、insert()、prepend()、append()、removeAt() 和takeAt()。
void QCborArray::pop_back()
removeLast() 的同义词。提供该函数是为了与使用标准库 API 的通用代码兼容。
删除数组中的最后一个元素。删除前数组必须为空。
另请参阅 removeLast()、takeLast()、pop_front()、push_back()、append() 和insert()。
void QCborArray::pop_front()
removeFirst() 的同义词。提供该函数是为了与使用标准库 API 的通用代码兼容。
删除数组的第一个元素。删除前数组必须为空。
另请参阅 removeFirst()、takeFirst()、pop_back()、push_front()、prepend() 和insert()。
void QCborArray::push_back(const QCborValue &t)
append() 的同义词。提供该函数是为了与使用标准库 API 的通用代码兼容。
将元素t 添加到此数组中。
另请参阅 append()、push_front()、pop_back()、prepend() 和insert()。
void QCborArray::push_front(const QCborValue &t)
prepend() 的同义词。提供该函数是为了与使用标准库 API 的通用代码兼容。
将t 元素预置到此数组中。
另请参阅 prepend()、push_back()、pop_front()、append() 和insert()。
void QCborArray::removeAt(qsizetype i)
从数组中删除i 位置上的项目。在删除之前,数组中的元素必须多于i 。
另请参阅 takeAt()、removeFirst()、removeLast()、at()、operator[]()、insert()、prepend() 和append()。
void QCborArray::removeFirst()
删除数组中的第一个元素,使第二个元素成为第一个元素。调用前数组必须为空。
另请参见 removeAt()、takeFirst()、removeLast()、at()、operator[]()、insert()、prepend() 和append()。
void QCborArray::removeLast()
删除数组中的最后一个项目。调用前数组必须为空。
另请参阅 removeAt()、takeLast()、removeFirst()、at()、operator[]()、insert()、prepend() 和append()。
[noexcept]
qsizetype QCborArray::size() const
返回数组的大小。
另请参阅 isEmpty()。
[noexcept]
void QCborArray::swap(QCborArray &other)
将该数组与other 互换。这一操作速度非常快,从未出现过故障。
QCborValue QCborArray::takeAt(qsizetype i)
从数组中删除i 位置上的项目并返回。在删除之前,数组中的元素必须多于i 。
另请参阅 removeAt()、removeFirst()、removeLast()、at()、operator[]()、insert()、prepend() 和append()。
QCborValue QCborArray::takeFirst()
移除数组中的第一个元素并返回,使第二个元素成为第一个元素。调用前数组必须为空。
另请参阅 takeAt()、removeFirst()、removeLast()、at()、operator[]()、insert()、prepend() 和append()。
QCborValue QCborArray::takeLast()
删除数组中的最后一个项目并返回。调用前数组必须为空。
另请参阅 takeAt()、removeLast()、removeFirst()、at()、operator[]()、insert()、prepend() 和append()。
QCborValue QCborArray::toCborValue() const
显式构造表示该数组的QCborValue 对象。通常不需要这个函数,因为QCborValue 有一个用于QCborArray 的构造函数,所以转换是隐式的。
将QCborArray 转换为QCborValue 可以在任何可以使用 QCborValues 的上下文中使用,包括作为 QCborArrays 中的项,以及作为QCborMap 中的键和映射类型。将数组转换为QCborValue 允许访问QCborValue::toCbor() 。
另请参阅 QCborValue::QCborValue(const QCborArray &)。
QJsonArray QCborArray::toJsonArray() const
使用QCborValue::toJsonValue() 将此数组中的每个QCborValue 元素递归转换为 JSON 格式,并返回由这些元素组成的相应QJsonArray 。
请注意,CBOR 包含的类型集比 JSON 更丰富、更广泛,因此在转换过程中可能会丢失一些信息。有关转换应用的详细信息,请参见QCborValue::toJsonValue()。
另请参阅 fromJsonArray()、QCborValue::toJsonValue()、QCborMap::toJsonObject() 和toVariantList()。
QVariantList QCborArray::toVariantList() const
使用QCborValue::toVariant() 对数组中的每个QCborValue 进行递归转换,并返回由转换后的项目组成的QVariantList 。
转换为QVariant 并非完全无损。更多信息请参阅QCborValue::toVariant() 中的文档。
另请参阅 fromVariantList()、fromStringList()、toJsonArray()、QCborValue::toVariant() 和QCborMap::toVariantMap()。
QCborArray QCborArray::operator+(const QCborValue &v) const
返回一个新的QCborArray ,其中包含与此数组相同的元素,加上作为最后一个元素追加的v 。
另请参阅 operator+=()、operator<<() 和append()。
QCborArray &QCborArray::operator+=(const QCborValue &v)
将v 追加到此数组,并返回此数组的引用。
另请参阅 append()、insert()、operator+() 和operator<<()。
QCborArray &QCborArray::operator<<(const QCborValue &v)
将v 追加到此数组,并返回此数组的引用。
另请参阅 append()、insert()、operator+() 和operator+=()。
[noexcept]
QCborArray &QCborArray::operator=(const QCborArray &other)
将此数组的内容替换为other 中的内容,然后返回此对象的引用。
QCborValueRef QCborArray::operator[](qsizetype i)
返回数组中i 位置的QCborValue 元素的引用。超过数组末尾的索引将增加数组,填充未定义的条目,直到指定索引处有条目为止。
QCborValueRef 的 API 与QCborValue 完全相同,但有一个重要区别:如果为其分配新值,该数组将根据新值进行更新。
另请参见 at(),first(),last(),insert(),prepend(),append(),removeAt(), 和takeAt().
const QCborValue QCborArray::operator[](qsizetype i) const
返回数组中i 位置的QCborValue 元素。
如果数组小于i ,该函数将返回一个包含未定义值的QCborValue 。因此,该函数无法区分数组不够大的情况和数组在i 位置包含未定义值的情况。
另请参阅 at(),first(),last(),insert(),prepend(),append(),removeAt() 和takeAt() 。
相关非会员
[noexcept]
bool operator!=(const QCborArray &lhs, const QCborArray &rhs)
比较lhs 和rhs 数组,依次比较每个元素,如果两个数组的内容不同,则返回 true,否则返回 false。
有关 Qt XML 中 CBOR 相等的更多信息,请参阅QCborValue::compare()。
另请参阅 compare()、QCborValue::operator==()、QCborMap::operator==()、operator==() 和operator<()。
[noexcept]
bool operator<(const QCborArray &lhs, const QCborArray &rhs)
比较lhs 和rhs 数组,按顺序比较每个元素,如果lhs 数组应排序在rhs 之前,则返回 true,否则返回 false。
有关 CBOR 排序顺序的更多信息,请参阅QCborValue::compare() 。
另请参阅 compare()、QCborValue::operator==()、QCborMap::operator==()、operator==()、operator!=() 和operator<=()。
[noexcept]
bool operator<=(const QCborArray &lhs, const QCborArray &rhs)
比较lhs 和rhs 数组,依次比较每个元素,如果lhs 数组应排序在rhs 之前,或两个数组包含相同元素,则返回 true,否则返回 false。
有关 CBOR 排序顺序的更多信息,请参阅QCborValue::compare() 。
另请参见 compare()、QCborValue::operator==()、QCborMap::operator==()、operator==()、operator!=() 和operator<()。
[noexcept]
bool operator==(const QCborArray &lhs, const QCborArray &rhs)
比较lhs 和rhs 数组,依次比较每个元素,如果两个数组包含相同元素,则返回 true,否则返回 false。
有关 Qt XML 中 CBOR 相等的更多信息,请参阅QCborValue::compare().
另请参阅 compare()、QCborValue::operator==()、QCborMap::operator==()、operator!=() 和operator<()。
[noexcept]
bool operator>(const QCborArray &lhs, const QCborArray &rhs)
比较lhs 和rhs 数组,按顺序比较每个元素,如果lhs 数组应排序在rhs 之后,则返回 true,否则返回 false。
有关 CBOR 排序顺序的更多信息,请参阅QCborValue::compare() 。
另请参阅 compare()、QCborValue::operator==()、QCborMap::operator==()、operator==()、operator!=() 和operator>=()。
[noexcept]
bool operator>=(const QCborArray &lhs, const QCborArray &rhs)
比较lhs 和rhs 数组,依次比较每个元素,如果lhs 数组应排序在rhs 之后,或两个数组包含相同元素,则返回 true,否则返回 false。
有关 CBOR 排序顺序的更多信息,请参阅QCborValue::compare() 。
另请参见 compare()、QCborValue::operator==()、QCborMap::operator==()、operator==()、operator!=() 和operator>()。
© 2025 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.