QCborArray 类

QCborArray 类用于存储 CBOR 元素数组。更多...

头文件 #include <QCborArray>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

提示: 此类中所有函数都是可重入的

公共类型

公共函数

QCborArray()
QCborArray(std::initializer_list<QCborValue> args)
QCborArray(const QCborArray &other)
~QCborArray()
voidappend(const QCborValue &value)
voidappend(QCborValue &&value)
QCborValueat(qsizetype i) const
QCborArray::iteratorbegin()
QCborArray::const_iteratorbegin() const
QCborArray::const_iteratorcbegin() const
QCborArray::const_iteratorcend() const
voidclear()
intcompare(const QCborArray &other) const
QCborArray::const_iteratorconstBegin() const
QCborArray::const_iteratorconstEnd() const
boolcontains(const QCborValue &value) const
boolempty() const
QCborArray::iteratorend()
QCborArray::const_iteratorend() const
QCborArray::iteratorerase(QCborArray::iterator it)
QCborArray::iteratorerase(QCborArray::const_iterator it)
QCborValueextract(QCborArray::ConstIterator it)
QCborValueextract(QCborArray::Iterator it)
QCborValuefirst() const
QCborValueReffirst()
voidinsert(qsizetype i, const QCborValue &value)
voidinsert(qsizetype i, QCborValue &&value)
QCborArray::iteratorinsert(QCborArray::iterator before, const QCborValue &value)
QCborArray::iteratorinsert(QCborArray::const_iterator before, const QCborValue &value)
boolisEmpty() const
QCborValuelast() const
QCborValueRef上一个()
voidpop_back()
voidpop_front()
voidprepend(const QCborValue &value)(const QCborValue &value)
voidprepend(QCborValue &&value) (QCborValue &&value)
voidpush_back(const QCborValue &t)(const QCborValue &t)
voidpush_front(const QCborValue &t)(const QCborValue &t)
voidremoveAt(qsizetype i)(qsizetype i)
voidremoveFirst()
voidremoveLast()
qsizetypesize() const
voidswap(QCborArray &other)(QCborArray &other)
QCborValuetakeAt(qsizetype i)(qsizetype i)
QCborValuetakeFirst()
QCborValuetakeLast()
QCborValuetoCborValue() const
QJsonArraytoJsonArray() const
QVariantListtoVariantList() const
booloperator!=(const QCborArray &other)(const QCborArray &other) const
QCborArrayoperator+(const QCborValue &v)(const QCborValue &v) const
QCborArray &operator+=(const QCborValue &v)
booloperator<(const QCborArray &other)(const QCborArray &other) const
QCborArray &operator<<(const QCborValue &v)(const QCborValue &v)
QCborArray &operator=(const QCborArray &other)(const QCborArray &other)
booloperator==(const QCborArray &other)(const QCborArray &other) const
const QCborValueoperator[](qsizetype i)(qsizetype i) const
QCborValueRefoperator[](qsizetype i)(qsizetype i)

静态公共成员

QCborArrayfromJsonArray(const QJsonArray &array)(const QJsonArray &array)
(自 6.3) QCborArrayfromJsonArray(QJsonArray &&array)(QJsonArray &&array)
QCborArrayfromStringList(const QStringList &list)(const QStringList &list)
QCborArrayfromVariantList(const QVariantList &list)(const QVariantList &list)

详细描述

此类可用于在CBOR(一个数组)中保存一个序列容器。CBOR是紧凑的二进制对象表示,是一种非常紧凑的二进制数据编码形式,它是JSON的超集。它由IETF约束RESTful环境(CoRE)工作组创建,该工作组已将其用于许多新的RFC。它旨在与CoAP协议一起使用。

QCborArray与QVariantListQJsonArray非常相似,其API几乎与这两个类相同。它还可以将它们转换成这两种,尽管在某些转换中可能会丢失一些信息。

另请参阅QCborValueQCborMapQJsonArrayQList解析和显示CBOR数据序列化转换器保存和加载游戏

成员类型文档

QCborArray::const_iterator

A synonym to QCborArray::ConstIterator.

QCborArray::const_pointer

A typedef to const QCborValue *, for compatibility with generic algorithms.

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()。

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 插入此数组中,并返回一个指向新插入元素的数组迭代器。

另请参阅 eraseremoveAtprepend,以及 append

从数组中移除由数组迭代器 it 所指的元素,然后返回一个指向下一个元素(在数组中占据与 it 旧位置相同的元素)的迭代器。

另请参阅 insertremoveAttakeAttakeFirst,以及 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::compareQCborMap::compareoperator==

QCborArray::const_iterator QCborArray::constBegin() const

返回一个指向数组第一个元素的数组迭代器。如果数组为空,则此函数返回与end()相同的结果。

另请参阅begin()和constEnd

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)。

另请参阅 isEmpty() 和 size()。

QCborArray::iterator QCborArray::end()

返回一个指向数组最后一个元素之后的数组迭代器。

另请参阅begin()和constEnd

QCborArray::const_iterator QCborArray::end() const

返回一个指向数组最后一个元素之后的数组迭代器。

另请参阅constBegin() 和 constEnd

QCborValue QCborArray::first() const

返回此数组的第一个QCborValue

如果数组为空,则此函数返回一个包含未定义值的QCborValue。因此,无法区分数组大小不足的情况和数组以未定义值结束的情况。

另请参阅 operator[],at,last,insert,prepend,append,removeAt,和takeAt。

QCborValueRef QCborArray::first()

返回对此数组的第一个QCborValue的引用。数组不能为空。

QCborValueRef具有与QCborValue完全相同的API,只有一个重要区别:如果您对它赋新值,则此数组将更新为新值。

另请参阅 operator[],at,last,insert,prepend,append,removeAt,和takeAt。

[静态] QCborArray QCborArray::fromJsonArray(const QJsonArray &array)

使用QCborValue::fromJson()将array数组中找到的所有JSON项转换为CBOR,并返回由这些元素组成的CBOR数组。

此转换是无损的,因为CBOR类型系统是JSON的超集。此外,此函数返回的数组可以通过使用toJsonArray()转换回原始的array

另请参阅 toJsonArray,toVariantList,QCborValue::fromJsonValue,和QCborMap::fromJsonObject。

[静态 noexcept, since 6.3] QCborArray QCborArray::fromJsonArray(QJsonArray &&array)

这是一个重载函数。

此函数是在Qt 6.3中引入的。

[静态] QCborArray QCborArray::fromStringList(const QStringList &list)

返回一个包含list列表中所有字符串的QCborArray

另请参阅 fromVariantList和fromJsonArray。

[静态] QCborArray QCborArray::fromVariantList(const QVariantList &list)

将列表中的所有项转换为CBOR,使用QCborValue::fromVariant(),并返回由这些元素组成的数组。

QVariant的转换不是完全无损的。有关更多信息,请参阅QCborValue::fromVariant()中的文档。

另请参阅toVariantList(),fromStringList(),fromJsonArray(),以及QCborMap::fromVariantMap

bool QCborArray::isEmpty() const

如果此QCborArray为空(即size()为0),则返回true。

另请参阅size()和clear

QCborValue QCborArray::last() const

返回该数组的最后一个QCborValue

如果数组为空,则此函数返回一个包含未定义值的QCborValue。因此,无法区分数组大小不足的情况和数组以未定义值结束的情况。

另请参阅operator[](),at(),first(),insert(),prepend(),append(),以及removeAt()和takeAt

QCborValueRef QCborArray::last()

返回对此数组最后一个QCborValue的引用。数组不能为空。

QCborValueRef具有与QCborValue完全相同的API,只有一个重要区别:如果您对它赋新值,则此数组将更新为新值。

另请参阅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 的上下文中使用,包括作为 QCborArray 中的项目以及作为 QCborMap 中的键和映射类型。将数组转换为 QCborValue 允许访问 QCborValue::toCbor

另请参阅 QCborValue::QCborValue(const QCborArray &).

QJsonArray QCborArray::toJsonArray() const

递归地将此数组中的每个 QCborValue 元素转换为 JSON 使用 QCborValue::toJsonValue() 并返回由这些元素组成的相应的 QJsonArray

请注意,CBOR 包含比 JSON 更丰富和更广泛的数据类型集,因此在转换中可能会丢失一些信息。有关转换应用详情,请参阅 QCborValue::toJsonValue

另请参阅 fromJsonArrayQCborValue::toJsonValueQCborMap::toJsonObject 以及 toVariantList

QVariantList QCborArray::toVariantList() const

递归地将此数组中的每个 QCborValue 转换为使用 QCborValue::toVariant() 返回的转换项目的 QVariantList

转换为 QVariant 不完全是无损的。请参阅 QCborValue::toVariant() 中的文档以获取更多信息。

另请参阅 fromVariantListfromStringListtoJsonArrayQCborValue::toVariant 以及 QCborMap::toVariantMap

[noexcept] bool QCborArray::operator!=(const QCborArray &other) const

按顺序比较 this 数组和 other 中的每个元素,如果两个数组的内容不同,则返回 true,否则返回 false。

有关 Qt 中 CBOR 相等的更多信息,请参阅 QCborValue::compare

另请参阅 compareQCborValue::operator==QCborMap::operator==operator==,以及 operator<

QCborArray QCborArray::operator+(const QCborValue &v) const

返回一个包含与该数组相同元素的新QCborArray,并将v附加为最后一个元素。

另请参阅operator+=(),operator<<()和append()。

QCborArray &QCborArray::operator+=(const QCborValue &v)

v添加到该数组中,并返回对该数组的引用。

另请参阅append(),insert(),operator+()和operator<<()。

bool QCborArray::operator<(const QCborArray &other) const

按顺序比较此数组和other中的每个元素,如果此数组应在other之前排序,则返回true,否则返回false。

有关CBOR排序顺序的更多信息,请参阅QCborValue::compare

另请参阅compare(),QCborValue::operator==(),QCborMap::operator==(),operator==()和operator!=()。

QCborArray &QCborArray::operator<<(const QCborValue &v)

v添加到该数组中,并返回对该数组的引用。

另请参阅append(),insert(),operator+()和operator+=()。

[noexcept] QCborArray &QCborArray::operator=(const QCborArray &other)

other中的内容替换此数组的内容,然后返回对此对象的引用。

[noexcept] bool QCborArray::operator==(const QCborArray &other) const

按顺序比较此数组和other中的每个元素,如果两个数组包含相同的元素,则返回true,否则返回false。

有关 Qt 中 CBOR 相等的更多信息,请参阅 QCborValue::compare

另请参阅compare(),QCborValue::operator==(),QCborMap::operator==(),operator!=()和operator<()。

const QCborValue QCborArray::operator[](qsizetype i) const

返回数组的第i个位置的QCborValue元素。

如果数组元素小于i个,则此函数返回一个包含未定义值的QCborValue。因此,使用此函数无法区分数组大小不足的情况和数组在位置i处包含未定义值的情况。

另请参见at(),first(),last(),insert(),prepend(),append(),removeAt(),以及takeAt()。

QCborValueRef QCborArray::operator[](qsizetype i)

返回对数组中位置 iQCborValue 元素的引用。索引超出数组末尾时,将扩展数组,用未定义条目填充,直到具有指定索引的条目。

QCborValueRef具有与QCborValue完全相同的API,只有一个重要区别:如果您对它赋新值,则此数组将更新为新值。

另请参见at(),first(),last(),insert(),prepend(),append(),removeAt(),以及takeAt()。

© 2024 The Qt Company Ltd。本文件中包含的文档贡献的版权归其各自所有者所有。本文件中提供的文档受GNU自由文档许可协议第1.3版的条款约束,由自由软件基金会发布。Qt以及相应的标志是芬兰的The Qt Company Ltd.及其在全球的商标。所有其他商标均为其各自所有者的财产。