QByteArrayView 类

The QByteArrayView class provides a view on an array of bytes with a read-only subset of the QByteArray API. More...

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

注意: 此类中所有函数都是 可重入的

公共类型

公共函数

QByteArrayView()
QByteArrayView(std::nullptr_t)
QByteArrayView(const Byte *data, qsizetype len)
QByteArrayView(const Byte *first, const Byte *last)
QByteArrayView(const Byte *data)
QByteArrayView(const QByteArray &byteArray)
QByteArrayView(const Container &c)
QByteArrayView(const char (&)[Size] data)
charat(qsizetype n) const
charback() const
QByteArrayView::const_iteratorbegin() const
QByteArrayView::const_iteratorcbegin() const
QByteArrayView::const_iteratorcend() const
voidchop(qsizetype length)
QByteArrayViewchopped(qsizetype length) const
(since 6.2) intcompare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QByteArrayView::const_pointerconstData() const
boolcontains(QByteArrayView bv) const
boolcontains(char ch) const
qsizetypecount(QByteArrayView bv) const
qsizetypecount(char ch) const
QByteArrayView::const_reverse_iteratorcrbegin() const
QByteArrayView::const_reverse_iteratorcrend() const
QByteArrayView::const_pointerdata() const
boolempty() const
QByteArrayView::const_iteratorend() const
boolendsWith(QByteArrayView bv) const
boolendsWith(char ch) const
QByteArrayViewfirst(qsizetype n) const
charfront() const
qsizetypeindexOf(QByteArrayView bv, qsizetype from = 0) const
qsizetypeindexOf(char ch, qsizetype from = 0) const
boolisEmpty() const
boolisNull() const
(自6.3起) boolisValidUtf8() const
QByteArrayViewlast(qsizetype n) const
qsizetypelastIndexOf(QByteArrayView bv, qsizetype from) const
(自6.2起) qsizetypelastIndexOf(QByteArrayView bv) const
qsizetypelastIndexOf(char ch, qsizetype from = -1) const
qsizetypelength() const
QByteArrayView::const_reverse_iteratorrbegin() const
QByteArrayView::const_reverse_iteratorrend() const
qsizetypesize() const
QByteArrayViewsliced(qsizetype pos) const
QByteArrayViewsliced(qsizetype pos, qsizetype n) const
boolstartsWith(QByteArrayView bv) const
boolstartsWith(char ch) const
QByteArraytoByteArray() const
(自6.3起) doubletoDouble(bool *ok = nullptr) const
(自6.3起) floattoFloat(bool *ok = nullptr) const
(自6.3起) inttoInt(bool *ok = nullptr, int base = 10) const
(自6.3起) longtoLong(bool *ok = nullptr, int base = 10) const
(自6.3起) qlonglongtoLongLong(bool *ok = nullptr, int base = 10) const
(自6.3起) shorttoShort(bool *ok = nullptr, int base = 10) const
(自6.3起) uinttoUInt(bool *ok = nullptr, int base = 10) const
(自6.3起) ulongtoULong(bool *ok = nullptr, int base = 10) const
(自6.3起) qulonglongtoULongLong(bool *ok = nullptr, int base = 10) const
(自6.3起) ushorttoUShort(bool *ok = nullptr, int base = 10) const
(自6.3起) QByteArrayViewtrimmed() const
voidtruncate(qsizetype length)
(自6.7起) std::string_viewoperator std::string_view() const
charoperator[](qsizetype n) const

静态公有成员

QByteArrayViewfromArray(const Byte (&)[Size] data)
booloperator!=(QByteArrayView lhs, QByteArrayView rhs)
booloperator<(QByteArrayView lhs, QByteArrayView rhs)
booloperator<=(QByteArrayView lhs, QByteArrayView rhs)
booloperator==(QByteArrayView lhs, QByteArrayView rhs)
booloperator>(QByteArrayView lhs, QByteArrayView rhs)
booloperator>=(QByteArrayView lhs, QByteArrayView rhs)

详细描述

A QByteArrayView引用了它不拥有的连续的字节数据。它作为一个接口类型,用于所有种类的类似字节数据,无需首先构建一个QByteArray

字节数组数据可能表示为一个数组(或与数组兼容的数据结构,如QByteArray、std::basic_string等)的char、signed char、unsigned char或std::byte。

QByteArrayView被设计为一个接口类型;其主要用例是作为函数参数类型。当QByteArrayView作为自动变量或数据成员使用时,必须注意确保引用的数据(例如,由QByteArray拥有)在所有代码路径中都比QByteArrayView长命,否则字节数据视图最终会引用已删除的数据。

当用作接口类型时,QByteArrayView允许单个函数接受各种类似字节数据源。接受QByteArrayView的函数因此取代了几个函数重载(例如,接受QByteArray、const char *等),同时还可以将更多的字节数据源传递给函数。

QByteArrayView应该按值传递,而不是按引用传递

    void myfun1(QByteArrayView bv);        // preferred
    void myfun2(const QByteArrayView &bv); // compiles and works, but slower

如果您想为用户提供最大程度的自由,在可以将哪种类型的数据传递给您函数,请与QByteArrayView重载一起使用

  • char:这个重载可以委托给QByteArrayView版本
        void fun(QByteArrayView bv);
        void fun(char ch) { fun(QByteArrayView(&ch, 1)); }

    尽管如此,由于技术原因,QByteArrayView本身无法提供char构造函数。

  • QByteArray:如果您存储了未修改的字节数组副本,并因此想利用QByteArray的隐式共享。

QByteArrayView也可以用作函数的返回值。如果您调用返回QByteArrayView的函数,请注意不要在函数承诺保持引用数据的活动状态的情况下,让QByteArrayView存在的时间过长。如果有疑问,通过调用toByteArray()将QByteArrayView转换为QByteArray来获取数据的强引用。

QByteArrayView支持的方法反映了QByteArray的方法。特别是,在有限程度上指定字符数据的语义(如字符大小写、空格、数字等)时,它使用C区域和ASCII编码。有关详细信息和方法限制,请参阅C区域和ASCII函数

兼容的字节类型

QByteArrayView可以构建在任何字节容器中,其中字节类型为

  • char(有符号和无符号)
  • std::byte

另请参阅QByteArrayQStringView

成员类型文档

QByteArrayView::const_iterator

此typedef提供了一种适用于QByteArrayView的STL样式的const迭代器。

另请参阅迭代器const_reverse_iterator

QByteArrayView::const_pointer

别名与value_type *。提供与STL的兼容性。

QByteArrayView::const_reference

别名与value_type &。提供与STL的兼容性。

QByteArrayView::const_reverse_iterator

此typedef为QByteArrayView提供了一种STL样式的const反向迭代器。

另请参阅reverse_iteratorconst_iterator

QByteArrayView::difference_type

别名与std::ptrdiff_t。提供与STL的兼容性。

QByteArrayView::iterator

此typedef提供了一种适用于QByteArrayView的STL样式的const迭代器。

QByteArrayView不支持可变迭代器,因此与const_iterator相同。

另请参阅const_iteratorreverse_iterator

QByteArrayView::pointer

别名与value_type *。提供与STL的兼容性。

QByteArrayView不支持可变指针,因此与const_pointer相同。

QByteArrayView::reference

别名与value_type &。提供与STL的兼容性。

QByteArrayView不支持可变引用,因此与const_reference相同。

QByteArrayView::reverse_iterator

此typedef为QByteArrayView提供了一种STL样式的const反向迭代器。

QByteArrayView不支持可变反向迭代器,因此与const_reverse_iterator相同。

另请参阅const_reverse_iteratoriterator

QByteArrayView::size_type

别名与qsizetype。提供与STL的兼容性。

QByteArrayView::storage_type

别名与char

QByteArrayView::value_type

别名与const char。提供与STL的兼容性。

成员函数文档

[noexcept] bool QByteArrayView::startsWith(QByteArrayView bv) const

[noexcept] bool QByteArrayView::startsWith(char ch) const

如果此字节序列视图以字节序列视图bv或字符ch开头,则返回true;否则返回false

另请参阅endsWith

[noexcept] bool QByteArrayView::endsWith(QByteArrayView bv) const

[noexcept] bool QByteArrayView::endsWith(char ch) const

如果这个字节数组视图以字节数组视图 bv 或字符 ch 结尾,则返回 true;否则返回 false

另请参阅 startsWith

[noexcept] qsizetype QByteArrayView::indexOf(QByteArrayView bv, qsizetype from = 0) const

[noexcept] qsizetype QByteArrayView::indexOf(char ch, qsizetype from = 0) const

分别返回在这个字节数组视图中,搜索从索引位置 from 开始,查看 bv 或找到字符 ch 的第一个出现的起始索引。如果没有找到匹配项,返回 -1。

如果 from 是 -1,则从最后一个字符开始搜索;如果它是 -2,则在倒数第二个字符处搜索,依此类推。

另请参阅 lastIndexOf() 和 contains

[noexcept] bool QByteArrayView::contains(QByteArrayView bv) const

[noexcept] bool QByteArrayView::contains(char ch) const

如果此字节数组视图中包含 bv 或字符 ch 的字节序列的任何出现,则返回 true;否则返回 false

另请参阅 indexOf() 和 lastIndexOf

[noexcept] qsizetype QByteArrayView::lastIndexOf(QByteArrayView bv, qsizetype from) const

[noexcept] qsizetype QByteArrayView::lastIndexOf(char ch, qsizetype from = -1) const

搜索从索引位置 from 开始,返回在这个字节数组视图中,查找 bv 的最后一个出现的起始索引或字节的最后一个出现的索引。

如果 from 是 -1,则从最后一个字符开始搜索;如果它是 -2,则在倒数第二个字符处搜索,依此类推。

如果没有找到匹配项,则返回 -1。

注意:在搜索长度为 0 的 bv 时,负 from 会排除数据末尾的匹配,即使通常认为 -1 是从视图末尾开始搜索:匹配在最后一个字符之后,因此被排除。要包括此类最终空匹配,请为 from 提供正值或完全省略 from 参数。

另请参阅 indexOf() 和 contains

[ constexpr noexcept ] QByteArrayView::QByteArrayView()

构造一个空的字节数组视图。

另见isNull().

[ constexpr noexcept ] QByteArrayView::QByteArrayView(std::nullptr_t)

构造一个空的字节数组视图。

另见isNull().

[ constexpr ] 模板 <typename Byte, QByteArrayView::if_compatible_byte<Byte> = true> QByteArrayView::QByteArrayView(const Byte *data, qsizetype len)

data 上构造一个长度为 len 的字节数组视图。

[data,len) 范围必须在此 QByteArrayView 的生命周期内保持有效。

如果 len 也为 0,则将 nullptr 作为 data 传递是安全的,并导致一个空字节数组视图。

如果 len 为负,或者 len 为正但 datanullptr,则行为是未定义的。

如果 Byte 是兼容的字节类型,则此构造函数仅参与重载解析。

另见兼容字节类型.

[ constexpr ] 模板 <typename Byte, QByteArrayView::if_compatible_byte<Byte> = true> QByteArrayView::QByteArrayView(const Byte *first, const Byte *last)

first 上构造一个长度为 last - first 的字节数组视图。

[first,last) 范围必须在此 QByteArrayView 的生命周期内保持有效。

如果 last 也为 nullptr,则将 nullptr 作为 first 传递是安全的,并导致一个空字节数组视图。

如果 lastfirst 之前,或者 firstnullptrlast 不是,则行为是未定义的。

如果 Byte 是兼容的字节类型,则此构造函数仅参与重载解析。

另见兼容字节类型.

[ constexpr noexcept ] 模板 <typename Byte> QByteArrayView::QByteArrayView(const Byte *data)

data 上构造一个字节数组视图。长度通过扫描第一个 Byte(0) 确定。

data 必须在此字节数组视图对象的生命周期内保持有效。

nullptr 作为 data 传递是安全的,并导致一个空字节数组视图。

如果 data 不是一个数组,且如果 Byte 是一个兼容的字节类型,则此构造函数仅参与重载解析。

另见兼容字节类型.

[ noexcept ] QByteArrayView::QByteArrayView(const QByteArray &byteArray)

byteArray 上构造一个字节数组视图。

byteArray.data() 必须在此字节数组视图对象的生命周期内保持有效。

如果并且仅如果 byteArray.isNull(),则字节数组视图将为空。

[ constexpr noexcept ] 模板 <typename Container, QByteArrayView::if_compatible_container<Container> = true> QByteArrayView::QByteArrayView(const Container &c)

在数组容器 c 上构建一个字节数组视图。长度和数据分别通过 std::size(c)std::data(c) 设置。

在此字节数组视图对象的生命周期内,容器中的数据必须保持有效。

如果 c 是任何具有兼容字节类型的元素的连续容器,则此构造函数参与重载解析。

另见兼容字节类型.

[constexpr noexcept] 模板 <size_t Size> QByteArrayView::QByteArrayView(const char (&)[Size] data)

在字符数组 data 上构建字节数组视图。视图覆盖直到遇到第一个 '\0'Size,以先到者为准。如果您需要完整的数组,请使用 fromArray()。

data 必须在此字节数组视图对象的生命周期内保持有效。

注意:此构造函数仅适用于字符数组文字。这样做的原因是为了与预定义了“大小足够”的数组的 C 库兼容,但这些库只使用了预分配空间的一部分。为了在隐式构造函数重载中直观地支持这一点,我们需要在第一个 char(0) 处停止。这对于字符数组是合理的,但不是对于 std::byte 数组。

另请参阅:fromArray

[constexpr] char QByteArrayView::at(qsizetype n) const

返回此字节数组视图中位置 n 处的字符。

如果 n 是负数或大于等于 size(),则行为未定义。

另请参阅:operator[]()、front() 和 back

[constexpr] char QByteArrayView::back() const

返回字节数组视图中的最后一个字节。

此函数提供以便与 STL 兼容。

警告:在空字节数组视图中调用此函数将会产生未定义的行为。

另请参阅:front

[constexpr noexcept] QByteArrayView::const_iterator QByteArrayView::begin() const

返回一个指向字节数组视图中第一个字节的 const STL-style iterator

此函数提供以便与 STL 兼容。

另请参阅:end()、cbegin()、rbegin() 和 data()。

[constexpr noexcept] QByteArrayView::const_iterator QByteArrayView::cbegin() const

begin 相同。

此函数提供以便与 STL 兼容。

另请参阅:cend()、begincrbegindata()。

[constexpr noexcept] QByteArrayView::const_iterator QByteArrayView::cend() const

end 相同。

此函数提供以便与 STL 兼容。

另请参阅:cbeginendcrend

[constexpr] void QByteArrayView::chop(qsizetype length)

通过 length 个字符截断此字节数组视图。

等同于 *this = first(size() - length)

注意:length < 0 或 length > size() 时,行为未定义。

另请参阅:sliced(),first(),last(),chopped() 和 truncate()。

[constexpr] Q ByteArrayView QByteArrayView::chopped(qsizetype length) const

返回一个此字节数组视图的副本,省略了其最后的 length 个字节。换句话说,返回一个从对象开始处开始,长度为 size() - length 的字节数组视图。

等同于 first(size() - length)

注意:length < 0 或 length > size() 时,行为未定义。

另请参阅:first(),last(),sliced(),chop() 和 truncate()。

[noexcept, since 6.2] int QByteArrayView::compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

根据此 QByteArrayView 是否在 QByteArrayView bv 之前、同一位置或之后排序,返回一个小于、等于或大于零的整数。比较按大小写敏感度 cs 进行。

此功能自 Qt 6.2 引入。

另请参阅:operator==

[constexpr noexcept] QByteArrayView::const_pointer QByteArrayView::constData() const

返回指向字节数组视图第一个字节的 const char 指针。

注意:返回值的字符数组不保证以空终止。返回的指针仅适用于访问小于此字节数组视图的 size()() 索引处的字节。

另请参阅:data(),begin() 和 end()。

[noexcept] qsizetype QByteArrayView::count(QByteArrayView bv) const

返回在字节数组视图中查看的由 bv 视见的字节序列的可能性重叠出现的数量。

另请参阅:contains() 和 indexOf()。

[noexcept] qsizetype QByteArrayView::count(char ch) const

这是函数的重载。

返回在此字节数组视图中出现的字节 ch 的数量。

另请参阅:contains() 和 indexOf()。

[constexpr noexcept] QByteArrayView::const_reverse_iterator QByteArrayView::crbegin() const

rbegin()相同。

此函数提供以便与 STL 兼容。

另请参阅crend(),rbegin()和cbegin()。

[constexpr noexcept] QByteArrayView::const_reverse_iterator QByteArrayView::crend() const

rend()相同。

此函数提供以便与 STL 兼容。

另请参阅crbegin(),rend()和cend()。

[constexpr noexcept] QByteArrayView::const_pointer QByteArrayView::data() const

返回指向字节数组视图第一个字节的 const char 指针。

注意:返回值的字符数组不保证以空终止。返回的指针仅适用于访问小于此字节数组视图的 size()() 索引处的字节。

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

[constexpr noexcept] bool QByteArrayView::empty() const

如果此字节数组视图为空(即size() == 0),则返回true

此函数提供以便与 STL 兼容。

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

[constexpr] QByteArrayView::const_iterator QByteArrayView::end() const

返回一个指向字节数组视图中最后一个字节的const STL样式迭代器

此函数提供以便与 STL 兼容。

另请参阅begin(),cend()和rend()。

[constexpr] QByteArrayView QByteArrayView::first(qsizetype n) const

返回一个指向此字节数组视图前n个字节的字节数组视图。等同于sliced(0, n)

注意:n < 0或n > size()时,行为是未定义的。

另请参阅last(),startsWith(),chopped(),chop()和truncate()。

[static constexpr noexcept] 模板 <typename Byte, size_t Size> QByteArrayView QByteArrayView::fromArray(const Byte (&)[Size] data)

构建对数组文本文档data的字节数组视图。该视图覆盖整个数组。这包括char数组文本文档的结尾空终止符。如果您不希望将空终止符包含在视图中,可以在确定它在末尾时chop它。或者您可以使用接受char数组文本文档的构造函数重载,这将创建一个直到但不包括数据中的第一个空终止符的视图。

此函数将适用于任何兼容字节类型的数组文本文档。

另请参阅兼容字节类型QByteArrayView

[constexpr] char QByteArrayView::front() const

返回字节数组视图中的第一个字节。

此函数提供以便与 STL 兼容。

警告:在空字节数组视图中调用此函数将会产生未定义的行为。

另请参阅back()。

[constexpr noexcept] bool QByteArrayView::isEmpty() const

如果此字节数组视图为空(即size() == 0),则返回true

另请参阅empty(为空),isNull(是否为空),和 size(大小)。

[constexpr noexcept] bool QByteArrayView::isNull() const

如果此字节数组视图为空 - 即 data() == nullptr,则返回 true

另请参阅empty(为空),isEmpty(是否为空),和 size(大小)。

[noexcept, since 6.3] bool QByteArrayView::isValidUtf8() const

如果此字节数组视图包含有效的 UTF-8 编码数据,则返回 true,否则返回 false

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

[constexpr] QByteArrayView QByteArrayView::last(qsizetype n) const

返回一个指向此字节数组视图最后 n 个字节的字节数组视图。

注意:n < 0或n > size()时,行为是未定义的。

另请参阅first(第一个),endsWith(以...结束),chopped(去掉末尾的...),chop(去掉开始的...),和 truncate(截断)。

[noexcept, since 6.2] qsizetype QByteArrayView::lastIndexOf(QByteArrayView bv) const

这是函数的重载。

返回此字节数组视图中最后一个出现由 bv 所查看的字节序列的起始位置的索引。从字节数组视图的末尾向后搜索。如果未找到匹配项,则返回 -1。

此功能自 Qt 6.2 引入。

另请参阅 indexOf() 和 contains

[constexpr noexcept] qsizetype QByteArrayView::length() const

size(大小)相同。

另请参阅empty(为空),isEmpty(是否为空),isNull(是否为空),和 size(大小)。

[constexpr noexcept] QByteArrayView::const_reverse_iterator QByteArrayView::rbegin() const

返回一个指向字节数组视图第一个字节(逆序)的 STL-style 常量反向迭代器。

此函数提供以便与 STL 兼容。

另请参阅rend(结束迭代器),crbegin(常数开始迭代器),和 begin(开始迭代器)。

[constexpr noexcept] QByteArrayView::const_reverse_iterator QByteArrayView::rend() const

返回一个指向字节数组视图最后一个字节之后(逆序)的 STL-style 反向迭代器。

此函数提供以便与 STL 兼容。

另请参阅rbegin(逆序开始迭代器),crend(常数逆序结束迭代器),和 end(结束迭代器)。

[constexpr noexcept] qsizetype QByteArrayView::size() const

返回此字节数组的字节数。

另请参阅empty(),isEmpty() 和 isNull()。

[constexpr] QByteArrayView QByteArrayView::sliced(qsizetype pos) const

返回一个从对此对象的 pos 位置开始并延伸到末尾的字节数组视图。

注意:pos 小于 0 或 pos 大于 size() 时,行为是未定义的。

另请参阅first(),last(),chopped(),chop() 和 truncate()。

[constexpr] QByteArrayView QByteArrayView::sliced(qsizetype pos, qsizetype n) const

返回一个指向从位置 pos 开始的此字节数组视图中的 n 字节的字节数组视图。

注意:pos 小于 0,n 小于 0,或 pos + n 大于 size() 时,行为是未定义的。

另请参阅first(),last(),chopped(),chop() 和 truncate()。

QByteArray QByteArrayView::toByteArray() const

返回一个将此字节数组视图的数据作为 QByteArray 的深拷贝。

如果此字节数组视图为 null,则返回值将是一个 null QByteArray

[since 6.3] double QByteArrayView::toDouble(bool *ok = nullptr) const

将此字节数组视图转换为 double 类型的值。

如果转换溢出,则返回无穷大;如果转换因其他原因失败(例如下溢),则返回 0.0。

如果 ok 不是 nullptr,则通过将 *ok 设置为 false 报告失败,并成功将 *ok 设置为 true

警告:QByteArrayView 内容只能包含有效的数值字符,包括正负号、科学记数法中使用的字符 e 和小数点。包括单位或其他字符会导致转换错误。

注意:数字的转换是在默认的 C 语文环境下进行的,不考虑用户的语文环境。使用 QLocale 在数字和字符串之间执行区域感知转换。

此函数忽略前导和尾随空白字符。

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

[since 6.3] float QByteArrayView::toFloat(bool *ok = nullptr) const

将此字节数组视图转换为 float 类型的值。

如果转换溢出,则返回无穷大;如果转换因其他原因失败(例如下溢),则返回 0.0。

如果 ok 不是 nullptr,则通过将 *ok 设置为 false 报告失败,并成功将 *ok 设置为 true

QByteArrayView string("1234.56 Volt");
bool ok;
float a = str.toFloat(&ok);       // a == 0, ok == false
a = string.first(7).toFloat(&ok); // a == 1234.56, ok == true

警告:QByteArrayView 内容只能包含有效的数值字符,包括正负号、科学记数法中使用的字符 e 和小数点。包括单位或其他字符会导致转换错误。

注意:数字的转换是在默认的 C 语文环境下进行的,不考虑用户的语文环境。使用 QLocale 在数字和字符串之间执行区域感知转换。

此函数忽略前导和尾随空白。

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

[since 6.3] int QByteArrayView::toInt(bool *ok = nullptr, int base = 10) const

返回将此字节数组视图转换为以基数 base(默认为十)表示的 int。支持的基数值为 0 和 2 至 36,对于大于 9 的数字使用字母表示;A 代表十,B 代表十一,以此类推。

如果 base 为 0,则自动使用以下规则确定基数:如果字节数组视图以 "0x" 开头,其余部分以十六进制(基数 16)读取;否则,如果它以 "0" 开头,其余部分以八进制(基数 8)读取;否则按十进制读取。

如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 *ok 设置为 false 报告失败,并成功将 *ok 设置为 true

QByteArrayView str("FF");
bool ok;
int hex = str.toInt(&ok, 16);     // hex == 255, ok == true
int dec = str.toInt(&ok, 10);     // dec == 0, ok == false

注意:数字的转换是在默认的 C 语文环境下进行的,不考虑用户的语文环境。使用 QLocale 在数字和字符串之间执行区域感知转换。

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

[自 6.3 版起] long QByteArrayView::toLong(bool *ok = nullptr, int base = 10) const

返回以此字节数组视图转换为以基数 base(默认为十)表示的 long int。支持的基数值为 0 和 2 至 36,对于大于 9 的数字使用字母表示;A 代表十,B 代表十一,以此类推。

如果 base 为 0,则自动使用以下规则确定基数:如果字节数组视图以 "0x" 开头,其余部分以十六进制(基数 16)读取;否则,如果它以 "0" 开头,其余部分以八进制(基数 8)读取;否则按十进制读取。

如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 *ok 设置为 false 报告失败,并成功将 *ok 设置为 true

QByteArrayView str("FF");
bool ok;
long hex = str.toLong(&ok, 16);   // hex == 255, ok == true
long dec = str.toLong(&ok, 10);   // dec == 0, ok == false

注意:数字的转换是在默认的 C 语文环境下进行的,不考虑用户的语文环境。使用 QLocale 在数字和字符串之间执行区域感知转换。

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

[自 6.3 版起] qlonglong QByteArrayView::toLongLong(bool *ok = nullptr, int base = 10) const

返回以此字节数组视图转换为以基数 base(默认为十)表示的 long long。支持的基数值为 0 和 2 至 36,对于大于 9 的数字使用字母表示;A 代表十,B 代表十一,以此类推。

如果 base 为 0,则自动使用以下规则确定基数:如果字节数组视图以 "0x" 开头,其余部分以十六进制(基数 16)读取;否则,如果它以 "0" 开头,其余部分以八进制(基数 8)读取;否则按十进制读取。

如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 *ok 设置为 false 报告失败,并成功将 *ok 设置为 true

注意:数字的转换是在默认的 C 语文环境下进行的,不考虑用户的语文环境。使用 QLocale 在数字和字符串之间执行区域感知转换。

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

[自 6.3 版起] short QByteArrayView::toShort(bool *ok = nullptr, int base = 10) const

返回以此字节数组视图转换为以基数 base(默认为十)表示的 short。支持的基数值为 0 和 2 至 36,对于大于 9 的数字使用字母表示;A 代表十,B 代表十一,以此类推。

如果 base 为 0,则自动使用以下规则确定基数:如果字节数组视图以 "0x" 开头,其余部分以十六进制(基数 16)读取;否则,如果它以 "0" 开头,其余部分以八进制(基数 8)读取;否则按十进制读取。

如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 *ok 设置为 false 报告失败,并成功将 *ok 设置为 true

注意:数字的转换是在默认的 C 语文环境下进行的,不考虑用户的语文环境。使用 QLocale 在数字和字符串之间执行区域感知转换。

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

[自 6.3 版起] uint QByteArrayView::toUInt(bool *ok = nullptr, int base = 10) const

返回以此字节数组视图转换为以基数 base(默认为十)表示的无符号 int。支持的基数值为 0 和 2 至 36,对于大于 9 的数字使用字母表示;A 代表十,B 代表十一,以此类推。

如果 base 为 0,则自动使用以下规则确定基数:如果字节数组视图以 "0x" 开头,其余部分以十六进制(基数 16)读取;否则,如果它以 "0" 开头,其余部分以八进制(基数 8)读取;否则按十进制读取。

如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 *ok 设置为 false 报告失败,并成功将 *ok 设置为 true

注意:数字的转换是在默认的 C 语文环境下进行的,不考虑用户的语文环境。使用 QLocale 在数字和字符串之间执行区域感知转换。

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

[自 6.3 版起] ulong QByteArrayView::toULong(bool *ok = nullptr, int base = 10) const

返回以此字节数组视图转换为以基数 base(默认为十)表示的无符号 long int。支持的基数值为 0 和 2 至 36,对于大于 9 的数字使用字母表示;A 代表十,B 代表十一,以此类推。

如果 base 为 0,则自动使用以下规则确定基数:如果字节数组视图以 "0x" 开头,其余部分以十六进制(基数 16)读取;否则,如果它以 "0" 开头,其余部分以八进制(基数 8)读取;否则按十进制读取。

如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 *ok 设置为 false 报告失败,并成功将 *ok 设置为 true

注意:数字的转换是在默认的 C 语文环境下进行的,不考虑用户的语文环境。使用 QLocale 在数字和字符串之间执行区域感知转换。

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

[自 6.3 版起] qulonglong QByteArrayView::toULongLong(bool *ok = nullptr, int base = 10) const

返回以此字节数组视图转换为以基数 base(默认为十)表示的无符号 long long。支持的基数值为 0 和 2 至 36,对于大于 9 的数字使用字母表示;A 代表十,B 代表十一,以此类推。

如果 base 为 0,则自动使用以下规则确定基数:如果字节数组视图以 "0x" 开头,其余部分以十六进制(基数 16)读取;否则,如果它以 "0" 开头,其余部分以八进制(基数 8)读取;否则按十进制读取。

如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 *ok 设置为 false 报告失败,并成功将 *ok 设置为 true

注意:数字的转换是在默认的 C 语文环境下进行的,不考虑用户的语文环境。使用 QLocale 在数字和字符串之间执行区域感知转换。

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

[自 6.3 开始] ushort QByteArrayView::toUShort(bool *ok = nullptr, int base = 10) const

将此字节数组视图转换为使用默认基数 base 的无符号短整型。默认为 10。支持基数 0 和 2 到 36,使用字母表示大于 9 的数字;A 表示 10,B 表示 11,以此类推。

如果 base 为 0,则自动使用以下规则确定基数:如果字节数组视图以 "0x" 开头,其余部分以十六进制(基数 16)读取;否则,如果它以 "0" 开头,其余部分以八进制(基数 8)读取;否则按十进制读取。

如果转换失败,则返回 0。

如果 ok 不是 nullptr,则通过将 *ok 设置为 false 报告失败,并成功将 *ok 设置为 true

注意:数字的转换是在默认的 C 语文环境下进行的,不考虑用户的语文环境。使用 QLocale 在数字和字符串之间执行区域感知转换。

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

[noexcept, 自 6.3 开始] QByteArrayView QByteArrayView::trimmed() const

返回一个移除了起始和结束空白字符的字节数组视图副本。

空白字符是指 C 位置的标准 C++ isspace() 函数返回 true 的字符;这些是 ASCII 制表符 '\t'、换行符 '\n'、回车符 '\r'、垂直制表符 '\v'、换页符 '\f' 和空格 ' '。

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

另请参阅QChar::SpecialCharacter空白字符

[constexpr] void QByteArrayView::truncate(qsizetype length)

将此字节数组视图截断为长度 length

等同于 *this = first(length)

注意:length < 0 或 length > size() 时,行为未定义。

另请参阅first(),last(),sliced(),chopped() 和 chop

[constexpr noexcept, 自 6.7 开始] std::string_view QByteArrayView::operator std::string_view() const

将此 QByteArrayView 对象转换为 std::string_view 对象。返回的视图将有与该视图相同的指针和数据长度。

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

[constexpr] char QByteArrayView::operator[](qsizetype n) const

返回此字节数组视图中位置 n 处的字符。

如果 n 是负数或大于等于 size(),则行为未定义。

另请参阅at(),front() 和 back

相关非成员函数

[noexcept] bool operator!=(QByteArrayView lhs, QByteArrayView rhs)

[noexcept] bool operator<(QByteArrayView lhs, QByteArrayView rhs)

[noexcept] bool operator<=(QByteArrayView lhs, QByteArrayView rhs)

[noexcept] bool operator==(QByteArrayView lhs, QByteArrayView rhs)

[noexcept] bool operator>(QByteArrayView lhs, QByteArrayView rhs)

[noexcept] bool operator>=(QByteArrayView lhs, QByteArrayView rhs)

QByteArrayView 的比较运算符。

© 2024 Qt 公司有限公司。本文件的文档贡献包含其各自所有者的版权。本文件提供的内容受自由软件基金会发布的GNU 自由文档许可证版本 1.3 条款的约束。Qt 及其相关标志是芬兰及全球其他地区的 The Qt Company Ltd. 的商标。所有其他商标均为各自所有者的财产。