QByteArrayView 类
The QByteArrayView class provides a view on an array of bytes with a read-only subset of the QByteArray API. More...
头文件 | #include <QByteArrayView> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
Since | Qt 6.0 |
- 所有成员的列表,包括继承成员
- 已废弃的成员
- QByteArrayView 是 隐式共享类 和 字符串数据类 的一部分。
注意: 此类中所有函数都是 可重入的。
公共类型
const_iterator | |
const_pointer | |
const_reference | |
const_reverse_iterator | |
difference_type | |
iterator | |
pointer | |
reference | |
reverse_iterator | |
size_type | |
storage_type | |
value_type |
公共函数
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) | |
char | at(qsizetype n) const |
char | back() const |
QByteArrayView::const_iterator | begin() const |
QByteArrayView::const_iterator | cbegin() const |
QByteArrayView::const_iterator | cend() const |
void | chop(qsizetype length) |
QByteArrayView | chopped(qsizetype length) const |
(since 6.2) int | compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
QByteArrayView::const_pointer | constData() const |
bool | contains(QByteArrayView bv) const |
bool | contains(char ch) const |
qsizetype | count(QByteArrayView bv) const |
qsizetype | count(char ch) const |
QByteArrayView::const_reverse_iterator | crbegin() const |
QByteArrayView::const_reverse_iterator | crend() const |
QByteArrayView::const_pointer | data() const |
bool | empty() const |
QByteArrayView::const_iterator | end() const |
bool | endsWith(QByteArrayView bv) const |
bool | endsWith(char ch) const |
QByteArrayView | first(qsizetype n) const |
char | front() const |
qsizetype | indexOf(QByteArrayView bv, qsizetype from = 0) const |
qsizetype | indexOf(char ch, qsizetype from = 0) const |
bool | isEmpty() const |
bool | isNull() const |
(自6.3起) bool | isValidUtf8() const |
QByteArrayView | last(qsizetype n) const |
qsizetype | lastIndexOf(QByteArrayView bv, qsizetype from) const |
(自6.2起) qsizetype | lastIndexOf(QByteArrayView bv) const |
qsizetype | lastIndexOf(char ch, qsizetype from = -1) const |
qsizetype | length() const |
QByteArrayView::const_reverse_iterator | rbegin() const |
QByteArrayView::const_reverse_iterator | rend() const |
qsizetype | size() const |
QByteArrayView | sliced(qsizetype pos) const |
QByteArrayView | sliced(qsizetype pos, qsizetype n) const |
bool | startsWith(QByteArrayView bv) const |
bool | startsWith(char ch) const |
QByteArray | toByteArray() const |
(自6.3起) double | toDouble(bool *ok = nullptr) const |
(自6.3起) float | toFloat(bool *ok = nullptr) const |
(自6.3起) int | toInt(bool *ok = nullptr, int base = 10) const |
(自6.3起) long | toLong(bool *ok = nullptr, int base = 10) const |
(自6.3起) qlonglong | toLongLong(bool *ok = nullptr, int base = 10) const |
(自6.3起) short | toShort(bool *ok = nullptr, int base = 10) const |
(自6.3起) uint | toUInt(bool *ok = nullptr, int base = 10) const |
(自6.3起) ulong | toULong(bool *ok = nullptr, int base = 10) const |
(自6.3起) qulonglong | toULongLong(bool *ok = nullptr, int base = 10) const |
(自6.3起) ushort | toUShort(bool *ok = nullptr, int base = 10) const |
(自6.3起) QByteArrayView | trimmed() const |
void | truncate(qsizetype length) |
(自6.7起) std::string_view | operator std::string_view() const |
char | operator[](qsizetype n) const |
静态公有成员
QByteArrayView | fromArray(const Byte (&)[Size] data) |
相关非成员
bool | operator!=(QByteArrayView lhs, QByteArrayView rhs) |
bool | operator<(QByteArrayView lhs, QByteArrayView rhs) |
bool | operator<=(QByteArrayView lhs, QByteArrayView rhs) |
bool | operator==(QByteArrayView lhs, QByteArrayView rhs) |
bool | operator>(QByteArrayView lhs, QByteArrayView rhs) |
bool | operator>=(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
另请参阅QByteArray和QStringView。
成员类型文档
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_iterator和const_iterator。
QByteArrayView::difference_type
别名与std::ptrdiff_t
。提供与STL的兼容性。
QByteArrayView::iterator
此typedef提供了一种适用于QByteArrayView的STL样式的const迭代器。
QByteArrayView不支持可变迭代器,因此与const_iterator相同。
另请参阅const_iterator和reverse_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_iterator和iterator。
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 参数。
[ 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 为正但 data 为 nullptr
,则行为是未定义的。
如果 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 传递是安全的,并导致一个空字节数组视图。
如果 last 在 first 之前,或者 first 为 nullptr
而 last 不是,则行为是未定义的。
如果 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()、begin、crbegin 和 data()。
[constexpr noexcept]
QByteArrayView::const_iterator QByteArrayView::cend() const
与 end 相同。
此函数提供以便与 STL 兼容。
[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()() 索引处的字节。
[noexcept]
qsizetype QByteArrayView::count(QByteArrayView bv) const
返回在字节数组视图中查看的由 bv 视见的字节序列的可能性重叠出现的数量。
[noexcept]
qsizetype QByteArrayView::count(char ch) const
这是函数的重载。
返回在此字节数组视图中出现的字节 ch 的数量。
[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 兼容。
[constexpr noexcept]
QByteArrayView::const_pointer QByteArrayView::data() const
返回指向字节数组视图第一个字节的 const char
指针。
注意:返回值的字符数组不保证以空终止。返回的指针仅适用于访问小于此字节数组视图的 size()() 索引处的字节。
[constexpr noexcept]
bool QByteArrayView::empty() const
如果此字节数组视图为空(即size() == 0
),则返回true
。
此函数提供以便与 STL 兼容。
另请参阅isEmpty(),isNull()和size()。
[constexpr]
QByteArrayView::const_iterator QByteArrayView::end() const
返回一个指向字节数组视图中最后一个字节的const STL样式迭代器。
此函数提供以便与 STL 兼容。
[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 引入。
[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(),则行为未定义。
相关非成员函数
[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. 的商标。所有其他商标均为各自所有者的财产。