QLatin1StringView 类

QLatin1StringView 类提供了一种对 US-ASCII/Latin-1 编码的字符串字面量的薄包装。 更多...

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

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

公共类型

公共函数

QLatin1StringView()
(自 6.4) QLatin1StringView(std::nullptr_t)
QLatin1StringView(const char *str)
QLatin1StringView(const char *first, const char *last)
QLatin1StringView(const char *str, qsizetype size)
QLatin1StringView(const QByteArray &str)
(自 6.3) QLatin1StringView(QByteArrayView str)
QStringarg(Args &&... args) const
QLatin1Charat(qsizetype pos) const
QLatin1Charback() const
QLatin1StringView::const_iteratorbegin() const
QLatin1StringView::const_iteratorcbegin() const
QLatin1StringView::const_iteratorcend() const
voidchop(qsizetype length)
QLatin1StringViewchopped(qsizetype length) const
intcompare(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intcompare(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.5) intcompare(QUtf8StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
intcompare(QChar ch) const
intcompare(QChar ch, Qt::CaseSensitivity cs) const
(since 6.4) const char *constBegin() const
(since 6.4) const char *constData() const
(since 6.4) const char *constEnd() const
boolcontains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolcontains(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolcontains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.4) qsizetypecount(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.4) qsizetypecount(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.4) qsizetypecount(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QLatin1StringView::const_reverse_iteratorcrbegin() const
QLatin1StringView::const_reverse_iteratorcrend() const
const char *data() const
(since 6.4) boolempty() const
QLatin1StringView::const_iteratorend() const
boolendsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolendsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolendsWith(QChar ch) const
boolendsWith(QChar ch, Qt::CaseSensitivity cs) const
(since 6.4) QLatin1Charfirst() const
(since 6.0) QLatin1StringViewfirst(qsizetype n) const
QLatin1Charfront() const
qsizetypeindexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetypeindexOf(QLatin1StringView l1, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetypeindexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolisEmpty() const
boolisNull() const
(since 6.4) QLatin1Charlast() const
(since 6.0) QLatin1StringViewlast(qsizetype n) const
qsizetypelastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.2) qsizetypelastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.2) qsizetypelastIndexOf(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetypelastIndexOf(QLatin1StringView l1, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
(since 6.3) qsizetypelastIndexOf(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetypelastIndexOf(QChar c, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
const char *latin1() const
QLatin1StringViewleft(qsizetype length) const
(since 6.4) qsizetypelength() const
QLatin1StringViewmid(qsizetype start, qsizetype length = -1) const
QLatin1StringView::const_reverse_iteratorrbegin() const
QLatin1StringView::const_reverse_iteratorrend() const
QLatin1StringViewright(qsizetype length) const
qsizetypesize() const
(since 6.0) QLatin1StringViewsliced(qsizetype pos) const
(since 6.0) QLatin1StringViewsliced(qsizetype pos, qsizetype n) const
boolstartsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolstartsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
boolstartsWith(QChar ch) const
boolstartsWith(QChar ch, Qt::CaseSensitivity cs) const
(since 6.4) doubletoDouble(bool *ok = nullptr) const
(since 6.4) floattoFloat(bool *ok = nullptr) const
(since 6.4) inttoInt(bool *ok = nullptr, int base = 10) const
(since 6.4) longtoLong(bool *ok = nullptr, int base = 10) const
(since 6.4) qlonglongtoLongLong(bool *ok = nullptr, int base = 10) const
(since 6.4) shorttoShort(bool *ok = nullptr, int base = 10) const
(since 6.0) QStringtoString() const
(since 6.4) uinttoUInt(bool *ok = nullptr, int base = 10) const
(since 6.4) ulongtoULong(bool *ok = nullptr, int base = 10) const
(since 6.4) qulonglongtoULongLong(bool *ok = nullptr, int base = 10) const
(since 6.4) ushorttoUShort(bool *ok = nullptr, int base = 10) const
(since 6.0) decltype(qTokenize(*this, std::forward(needle), flags...))tokenize(Needle &&&sep, Flags... flags) const
QLatin1StringViewtrimmed() const
voidtruncate(qsizetype length)
booloperator!=(const char *other) const
booloperator!=(const QByteArray &other) const
booloperator<(const char *other) const
booloperator<(const QByteArray &other) const
booloperator<=(const char *other) const
booloperator<=(const QByteArray &other) const
booloperator==(const char *other) const
booloperator==(const QByteArray &other) const
booloperator>(const char *other) const
booloperator>(const QByteArray &other) const
booloperator>=(const char *other) const
booloperator>=(const QByteArray &other) const
QLatin1Charoperator[](qsizetype pos) const
booloperator!=(QLatin1StringView s1, QLatin1StringView s2)
booloperator!=(QChar ch, QLatin1StringView s)
bool操作符!=(QLatin1StringView s, QChar ch)
bool操作符!=(QStringView s1, QLatin1StringView s2)
bool操作符!=(QLatin1StringView s1, QStringView s2)
bool操作符!=(const char *s1, QLatin1StringView s2)
(自6.4版本开始) QLatin1StringView操作符""_L1(const char *str, size_t size)
bool操作符<(QLatin1StringView s1, QLatin1StringView s2)
bool操作符<(QChar ch, QLatin1StringView s)
bool操作符<(QLatin1StringView s, QChar ch)
bool操作符<(QStringView s1, QLatin1StringView s2)
bool操作符<(QLatin1StringView s1, QStringView s2)
bool操作符<(const char *s1, QLatin1StringView s2)
bool操作符<=(QLatin1StringView s1, QLatin1StringView s2)
bool操作符<=(QChar ch, QLatin1StringView s)
bool操作符<=(QLatin1StringView s, QChar ch)
bool操作符<=(QStringView s1, QLatin1StringView s2)
bool操作符<=(QLatin1StringView s1, QStringView s2)
bool操作符<=(const char *s1, QLatin1StringView s2)
bool操作符==(QLatin1StringView s1, QLatin1StringView s2)
bool操作符==(QChar ch, QLatin1StringView s)
bool操作符==(QLatin1StringView s, QChar ch)
bool操作符==(QStringView s1, QLatin1StringView s2)
bool操作符==(QLatin1StringView s1, QStringView s2)
bool操作符==(const char *s1, QLatin1StringView s2)
bool操作符>(QLatin1StringView s1, QLatin1StringView s2)
bool操作符>(QChar ch, QLatin1StringView s)
bool操作符>(QLatin1StringView s, QChar ch)
bool操作符>(QStringView s1, QLatin1StringView s2)
bool操作符>(QLatin1StringView s1, QStringView s2)
bool操作符>(const char *s1, QLatin1StringView s2)
bool操作符>=(QLatin1StringView s1, QLatin1StringView s2)
bool操作符>=(QChar ch, QLatin1StringView s)
bool操作符>=(QLatin1StringView s, QChar ch)
bool操作符>=(QStringView s1, QLatin1StringView s2)
bool操作符>=(QLatin1StringView s1, QStringView s2)
bool操作符>=(const char *s1, QLatin1StringView s2)

详细描述

许多QString的成员函数被重载,以接受const char *而不是QString。这包括拷贝构造函数、赋值运算符、比较运算符,以及各种其他函数,如insert()、append()和prepend()。其中一些函数被优化以避免为const char *数据构造QString对象。例如,假设str是一个QString:

if (str == "auto" || str == "extern"
        || str == "static" || str == "register") {
    ...
}

这比

if (str == QString("auto") || str == QString("extern")
        || str == QString("static") || str == QString("register")) {
    ...
}

要快得多,因为它不会构造四个临时QString对象并对字符数据进行深度复制。

但是,对于所有接受const char *的QString成员函数,这并不成立,因此应用程序应假设将创建一个临时文件,例如

str.append("Hello ").append("World");

定义了QT_NO_CAST_FROM_ASCII(如QString文档中所述)的应用程序无法访问QString的const char * API。为了提供一个指定常量拉丁-1字符串的高效方法,Qt提供了QLatin1StringView,它只是围绕一个const char *的一个非常薄的包装。使用QLatin1StringView,上面的示例代码变为:

if (str == "auto"_L1
        || str == "extern"_L1
        || str == "static"_L1
        || str == "register"_L1 {
    ...
}

这需要更长的键入时间,但它提供了与代码第一版本完全相同的好处,并且比使用QString::fromLatin1()转换拉丁-1字符串要快。

感谢QString(QLatin1StringView)构造函数,QLatin1StringView可以用于任何期望QString的地方。例如

QLabel *label = new QLabel("MOD"_L1, this);

注意:如果您调用的函数没有重载为接受QLatin1StringView,则隐式转换为QString将触发内存分配,这正是您使用QLatin1StringView的首要原因通常想避免。在这种情况下,使用QStringLiteral可能是更好的选择。

另请参阅:QStringQLatin1CharQStringLiteralQT_NO_CAST_FROM_ASCII

成员类型文档

[alias, since 6.7] QLatin1StringView::const_pointer

[alias, since 6.7] QLatin1StringView::pointer

对应于value_type *的别名。为了与STL兼容而提供。

此typedef是在Qt 6.7中引入的。

[alias] QLatin1StringView::const_iterator

另请参阅:迭代器const_reverse_iterator

[alias] QLatin1StringView::const_reference

对应于reference的别名。为了与STL兼容而提供。

[alias] QLatin1StringView::const_reverse_iterator

另请参阅:reverse_iteratorconst_iterator

[alias] QLatin1StringView::difference_type

qsizetype 的别称。提供以兼容 STL。

[alias] QLatin1StringView::iterator

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

另请参阅 const_iteratorreverse_iterator

[alias] QLatin1StringView::reference

value_type & 的别称。提供以兼容 STL。

[alias] QLatin1StringView::reverse_iterator

QLatin1StringView 不支持可变逆序迭代器,因此它与 const_reverse_iterator 相同。

另请参阅 const_reverse_iteratoriterator

[alias] QLatin1StringView::size_type

qsizetype 的别称。提供以兼容 STL。

注意:在 Qt 6 以前的版本中,这是 int 的别称,限制了一个 QLatin1StringView 在 64 位架构上可以包含的数据量。

[alias] QLatin1StringView::value_type

const char 的别称。提供以兼容 STL。

成员函数文档

[constexpr noexcept] int QLatin1StringView::compare(QChar ch) const

[noexcept] int QLatin1StringView::compare(QChar ch, Qt::CaseSensitivity cs) const

[noexcept] int QLatin1StringView::compare(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] int QLatin1StringView::compare(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

分别比较此字符串视图与 UTF-16 字符串视图 str、Latin-1 字符串视图 l1 或字符 ch。如果此字符串小于 strl1ch,则返回负整数;如果它大于 strl1ch,则返回正整数;如果它们相等,则返回零。

如果 csQt::CaseSensitive(默认),则搜索是区分大小写的;否则搜索是不区分大小写的。

另请参阅 operator==(),operator<() 和 operator>

[constexpr noexcept] bool QLatin1StringView::startsWith(QChar ch) const

[noexcept] bool QLatin1StringView::startsWith(QChar ch, Qt::CaseSensitivity cs) const

[noexcept] bool QLatin1StringView::startsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] bool QLatin1StringView::startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

如果此 Latin-1 字符串视图以由 str 观察到的 UTF-16 字符串、由 l1 观察到的 Latin-1 字符串或字符 ch 分别开始,则返回 true;否则返回 false

如果 csQt::CaseSensitive(默认),则搜索是区分大小写的;否则搜索是不区分大小写的。

另请参阅 endsWith

[constexpr noexcept] bool QLatin1StringView::endsWith(QChar ch) const

[noexcept] bool QLatin1StringView::endsWith(QChar ch, Qt::CaseSensitivity cs) const

[noexcept] bool QLatin1StringView::endsWith(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] bool QLatin1StringView::endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

如果此 Latin-1 字符串视图以由 str 观察到的 UTF-16 字符串、由 l1 观察到的 Latin-1 字符串或字符 ch 分别结束,则返回 true;否则返回 false

如果 csQt::CaseSensitive(默认),则搜索是区分大小写的;否则搜索是不区分大小写的。

另请参阅 startsWith

[noexcept] qsizetype QLatin1StringView::indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetype QLatin1StringView::indexOf(QLatin1StringView l1, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetype QLatin1StringView::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

返回在当前 Latin-1 字符串视图中通过 str 视觉的 UTF-16 字符串、通过 l1 视觉的 Latin-1 字符串或字符 ch 的首次出现的位置索引。从索引位置 from 向前搜索。如果分别未找到 strl1c,则返回 -1。

如果 csQt::CaseSensitive(默认),则搜索是区分大小写的;否则搜索是不区分大小写的。

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

另请参阅 QString::indexOf().

[noexcept] bool QLatin1StringView::contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] bool QLatin1StringView::contains(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] bool QLatin1StringView::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

如果当前 Latin-1 字符串视图中分别包含通过 str 视觉的 UTF-16 字符串、通过 l1 视觉的 Latin-1 字符串或字符 ch 的出现,则返回 true;否则返回 false

如果 csQt::CaseSensitive(默认),则搜索是区分大小写的;否则搜索是不区分大小写的。

另请参阅 indexOf()、QStringView::contains()、QStringView::indexOf() 和 QString::indexOf

[noexcept] qsizetypeQLatin1StringView::lastIndexOf(QChar c, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetypeQLatin1StringView::lastIndexOf(QLatin1StringView l1, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept] qsizetypeQLatin1StringView::lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

返回在当前 Latin-1 字符串视图中通过 str 视觉的 UTF-16 字符串、通过 l1 视觉的 Latin-1 字符串或字符 ch 的最后一次出现的位置索引。从索引位置 from 向后搜索;如果分别未找到 strl1ch,则返回 -1。

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

如果 csQt::CaseSensitive(默认),则搜索是区分大小写的;否则搜索是不区分大小写的。

注意:当搜索长度为 0 的 strl1 时,由于使用了负值的 from,搜索会排除数据末尾的匹配,即使通常认为 -1 表示从字符串末尾开始搜索:末尾的匹配 位于 最后一个字符之后,因此被排除。要包括这样的最终空匹配,可以为 from 提供一个正数值,或者完全省略 from 参数。

另请参阅 indexOf()、QStringView::lastIndexOf()、QStringView::indexOf() 和 QString::indexOf

[noexcept, since 6.2] qsizetype QLatin1StringView::lastIndexOf(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[noexcept, since 6.2] qsizetype QLatin1StringView::lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

此函数重载了 lastIndexOf

返回=str或l1所查看的UTF-16字符串在当前Latin-1字符串视图中的最后出现位置的索引。如果str或l1未找到,则分别返回-1。

如果 csQt::CaseSensitive(默认),则搜索是区分大小写的;否则搜索是不区分大小写的。

此函数自 Qt 6.2 版本起引入。

[noexcept, since 6.4] qsizetype QLatin1StringView::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[since 6.4] qsizetype QLatin1StringView::count(QLatin1StringView l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[since 6.4] qsizetype QLatin1StringView::count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

返回此字符串视图中由 str 所观看的 UTF-16 字符串、由 l1 所观看的 Latin-1 字符串或字符 ch 的(可能重叠的)出现次数。

如果 csQt::CaseSensitive(默认),则搜索是区分大小写的;否则搜索是不区分大小写的。

此函数自 Qt 6.4 版本起引入。

另请参阅 contains() 和 indexOf

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

[since 6.4] long QLatin1StringView::toLong(bool *ok = nullptr, int base = 10) const

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

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

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

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

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

[自6.4版本起] ushort QLatin1StringView::toUShort(bool *ok = nullptr, int base = 10) const

将此 QLatin1StringView 转换为对应的基本数值(基数 base),默认为十进制。支持的基数为 0 到 36,超过 9 的数字使用字母表示;A 表示十,B 表示十一,以此类推。

如果 base 为 0,则自动根据以下规则(按此顺序)确定基数,如果 Latin-1 字符串视图以

  • "0x" 开头,则其余部分按十六进制(基数 16)读取
  • "0b",则其余部分按二进制(基数 2)读取
  • "0",则其余部分按八进制(基数 8)读取
  • 否则按十进制读取

转换失败时返回 0。

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

注意:数字的转换在默认的 C 位置执行,而不管用户的区域设置如何。使用 QLocale 在数字和字符串之间进行区域感知转换。

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

注意:对 "0b" 前缀的支持是在 Qt 6.4 中添加的。

此函数自 Qt 6.4 版本起引入。

[自6.4版本起] double QLatin1StringView::toDouble(bool *ok = nullptr) const

[自6.4版本起] float QLatin1StringView::toFloat(bool *ok = nullptr) const

将此 QLatin1StringView 转换为相应的浮点数值。

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

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

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

注意:数字的转换在默认的 C 位置执行,而不管用户的区域设置如何。使用 QLocale 在数字和字符串之间进行区域感知转换。

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

此函数自 Qt 6.4 版本起引入。

模板 QString QLatin1StringView::arg(Args &&... 参数) const

在此字符串中替换 %N 的所有实例,并用相应 参数 替换。参数是非定位的:第一个参数替换具有最低 N%N(所有这些),第二个参数替换下一个最低 N%N 等。

Args 由任何可以隐式转换为 QStringQStringViewQLatin1StringView 的对象组成。

此外,还支持以下类型:QCharQLatin1Char

另请参阅 QString::arg().

[constexpr noexcept(...), since 6.0] 模板 <typename 针对针, typename... 标志> decltype(qTokenize(*this, std::forward<针对针>(needle), flags...)) QLatin1StringView::tokenize(针对针 &&分隔符, Flags... 标志) const

分隔符 存在处分割字符串为子字符串视图,并返回这些字符串的懒序列。

等同于

return QStringTokenizer{std::forward<Needle>(sep), flags...};

但它无需启用编译器中的 C++17 类模板参数推导 (CTAD)。

请参阅 QStringTokenizer 了解 分隔符标志 如何与结果组合。

注意:虽然此函数返回 QStringTokenizer,您永远,任何时候都不要明确命名其模板参数。如果您可以使用 C++17 类模板参数推导 (CTAD),则可以写

QStringTokenizer result = sv.tokenize(sep);

(没有模板参数)。如果您不能使用 C++17 CTAD,则必须仅在 auto 变量中存储返回值

auto result = sv.tokenize(sep);

这是因为 QStringTokenizer 的模板参数具有一个非常微妙的具体 tokenize() 重载的依赖关系,并且不一定与用于分隔符的类型相对应。

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

注意:当 "noexcept(qTokenize(std::declval&<>const QLatin1StringView &>(), std::forward<针对针>(needle), flags...))" 为真时,此函数不会抛出任何异常。

另请参阅 QStringTokenizerqTokenize().

[constexpr noexcept] WahrSans Worlds语文语文:QLatin1StringView()

构建一个存储 nullptrQLatin1StringView 对象。

另请参阅 dataisEmptyisNull空字符串和空字符串之间的区别

[constexpr noexcept, since 6.4] WahrSans Worlds语文语文:QLatin1StringView(std::nullptr_t)

构建一个存储 nullptrQLatin1StringView 对象。

此函数自 Qt 6.4 版本起引入。

另请参阅 dataisEmptyisNull空字符串和空字符串之间的区别

[explicit constexpr noexcept] WahrSans Worlds语文语文:QLatin1StringView(const char *str)

构建一个存储 strQLatin1StringView 对象。

字符串数据不会被复制。调用者必须能够保证只要QLatin1StringView对象存在,字符串translate="no">str都不会被删除或修改。

另请参阅latin1

[constexpr] QLatin1StringView::QLatin1StringView(const char *first, const char *last)

构建一个QLatin1StringView对象,该对象存储从first的长度(last - first)起。

在QLatin-1字符串对象的整个生存期内,范围[first, last)必须保持有效。

如果last也是nullptr,并以nullptr作为first传递是安全的,并将生成一个null拉丁-1字符串。

如果lastfirst之前,或者如果firstnullptrlast不是,或者如果last - first > INT_MAX,则行为未定义。

[constexpr noexcept] QLatin1StringView::QLatin1StringView(const char *str, qsizetype size)

构建一个具有size的QLatin1StringView对象,该对象存储字符串str

字符串数据不会被复制。调用者必须能够保证只要QLatin1StringView对象存在,字符串translate="no">str都不会被删除或修改。

注意:字节数组中的任何null('\0')字节都将包含在这个字符串中,如果此字符串被用作QString,则将其转换为Unicode null字符(U+0000)。此行为与Qt 5.x不同。

另请参阅latin1

[explicit noexcept] QLatin1StringView::QLatin1StringView(const QByteArray &str)

将QLatin1StringView对象作为对str的视图构建。

字符串数据不会被复制。调用者必须能够保证只要QLatin1StringView对象存在,字符串translate="no">str都不会被删除或修改。

另请参阅latin1

[explicit constexpr noexcept, since 6.3] QLatin1StringView::QLatin1StringView(QByteArrayView str)

将QLatin1StringView对象作为对str的视图构建。

字符串数据不会被复制。调用者必须能够保证,在QLatin1StringView对象存在的情况下,str所指的数据不会被删除或修改。大小直接从str获取,而不检查空终止符。

注意:字节数组中的任何null('\0')字节都将包含在这个字符串中,如果此字符串被用作QString,则将其转换为Unicode null字符(U+0000)。

此功能是在Qt 6.3中引入的。

另请参阅latin1

[constexpr] QLatin1Char QLatin1StringView::at(qsizetype pos) const

返回此对象中位置为pos的字符。

注意:此函数不执行错误检查。当pos < 0或pos >= size()时,行为未定义。

另请参阅操作符[]

[constexpr] QLatin1Char QLatin1StringView::back() const

返回字符串中的最后一个字符。等同于at(size() - 1)

此函数是为了与STL兼容性而提供的。

警告:在空字符串上调用此函数表示未定义的行为。

另请参阅 front(),at() 以及 operator[]

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

返回一个指向字符串中第一个字符的const STL样式迭代器。

此函数是为了与STL兼容性而提供的。

另请参阅 end(),cbegin(),rbegin() 以及 data

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

begin()相同。

此函数是为了与STL兼容性而提供的。

另请参阅 cend(),begin(),crbegin() 以及 data

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

end()相同。

此函数是为了与STL兼容性而提供的。

另请参阅 cbegin(),end() 以及 crend

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

通过length个字符截断此字符串。

等同于*。

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

另请参阅 sliced(),first(),last(),chopped() 以及 truncate

[constexpr] QLatin1StringView QLatin1StringView::chopped(qsizetype length) const

返回以该对象开头长度为<size() - length的子字符串。

等同于left(size() - length)

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

另请参阅 sliced(),first(),last(),chop() 以及 truncate

[noexcept, since 6.5] int QLatin1StringView::compare(QUtf8StringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

比较此字符串视图与str,如果此字符串视图小于str则返回一个负整数,如果大于则返回正整数,如果它们相等则返回0。

如果 csQt::CaseSensitive(默认值),则比较是区分大小写的;否则比较是不区分大小写的。

此函数在 Qt 6.5 中引入。

另请参阅 operator==(),operator<() 和 operator>

[constexpr noexcept, since 6.4] const char *QLatin1StringView::constBegin() const

begin()相同。

该函数提供与其他 Qt 容器兼容的功能。

此函数自 Qt 6.4 版本起引入。

另请参阅constEnd(),begin(),cbegin() 和 data()。

[constexpr noexcept, since 6.4] const char *QLatin1StringView::constData() const

返回由此对象引用的 Latin-1 字符串的起始位置。

该函数提供与其他 Qt 容器兼容的功能。

此函数自 Qt 6.4 版本起引入。

另请参阅data()。

[constexpr noexcept, since 6.4] const char *QLatin1StringView::constEnd() const

end()相同。

该函数提供与其他 Qt 容器兼容的功能。

此函数自 Qt 6.4 版本起引入。

另请参阅constBegin(),end(),cend() 和 crend()。

[noexcept] QLatin1StringView::const_reverse_iterator QLatin1StringView::crbegin() const

rbegin 相同。

此函数是为了与STL兼容性而提供的。

另请参阅crend(),rbegincbegin()。

[noexcept] QLatin1StringView::const_reverse_iterator QLatin1StringView::crend() const

rend 相同。

此函数是为了与STL兼容性而提供的。

另请参阅crbegin(),rendcend()。

[constexpr] const char *QLatin1StringView::data() const

返回由此对象引用的 Latin-1 字符串的起始位置。

[constexpr noexcept, since 6.4] bool QLatin1StringView::empty() const

返回由此对象引用的 Latin-1 字符串是否为空(size() == 0)。

此函数是为了与STL兼容性而提供的。

此函数自 Qt 6.4 版本起引入。

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

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

返回一个指向字符串最后一个字符之后的常量 STL-style iterator

此函数是为了与STL兼容性而提供的。

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

[constexpr] QLatin1Char QLatin1StringView::first() const

返回字符串中的第一个字符。等同于at(0)front()。

该函数提供与其他 Qt 容器兼容的功能。

警告:在空字符串上调用此函数表示未定义的行为。

此函数自 Qt 6.4 版本起引入。

另请参阅last(),front()和back()。

[constexpr, since 6.0] QLatin1StringView LATIN1STRINGVIEW::first(QSIZETYPE n) const

返回一个包含此字符串视图前n个字符的Latin-1字符串视图。

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

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

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

[constexpr] QLatin1Char LATIN1STRINGVIEW::front() const

返回字符串中的第一个字符。等同于at(0)

此函数是为了与STL兼容性而提供的。

警告:在空字符串上调用此函数表示未定义的行为。

另请参阅back(),at()和operator[]()。

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

返回由此对象引用的 Latin-1 字符串是否为空(size() == 0)。

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

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

返回由此对象引用的Latin-1字符串是否为空(data() == nullptr)。

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

[constexpr, since 6.4] QLatin1Char LATIN1STRINGVIEW::last() const

返回字符串中的最后一个字符。等同于at(size() - 1)back()。

该函数提供与其他 Qt 容器兼容的功能。

警告:在空字符串上调用此函数表示未定义的行为。

此函数自 Qt 6.4 版本起引入。

另请参阅first(),back()和front()。

[constexpr, since 6.0] QLatin1StringView LATIN1STRINGVIEW::last(QSIZETYPE n) const

返回包含此字符串视图后n个字符的Latin-1字符串视图。

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

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

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

[noexcept, since 6.3] QSIZETYPE LATIN1STRINGVIEW::lastIndexOf(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

这是一个重载函数。

此功能是在Qt 6.3中引入的。

[constexpr noexcept] const char *LATIN1STRINGVIEW::latin1() const

返回由此对象引用的 Latin-1 字符串的起始位置。

[constexpr] QLatin1StringView QLatin1StringView::left(qsizetype length) const

如果您知道length不会超出范围,请在新的代码中使用first()代替,因为它更快。

返回从位置0开始的长度为length的子字符串。

如果length大于或等于size(),或者小于0,则返回整个QLatin1字符串视图。

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

[constexpr noexcept, since 6.4] qsizetype QLatin1StringView::length() const

size相同。

该函数提供与其他 Qt 容器兼容的功能。

此函数自 Qt 6.4 版本起引入。

[constexpr] QLatin1StringView QLatin1StringView::mid(qsizetype start, qsizetype length = -1) const

返回从位置start开始的长度为length的子字符串。

如果您知道startlength不会超出范围,请在新的代码中使用sliced()代替,因为它更快。

如果start超出该字符串视图的长度,则返回一个空的QLatin1字符串视图。如果从start开始的字符串视图中没有足够的length个字符,或者如果length是负数(默认),则函数返回从start开始的可用所有字符。

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

[noexcept] QLatin1StringView::const_reverse_iterator QLatin1StringView::rbegin() const

返回一个指向字符串中第一个字符的逆序的constSTL样式反向迭代器。

此函数是为了与STL兼容性而提供的。

另请参阅rend(), crbegin()和begin().

[noexcept] QLatin1StringView::const_reverse_iterator QLatin1StringView::rend() const

返回一个指向字符串中最后一个字符之后位置的逆序的STL样式反向迭代器。

此函数是为了与STL兼容性而提供的。

另请参阅rbegin(), crend()和end().

如果您知道长度不会超出范围,则在新的代码中使用last()代替,因为它更快。

在这个Latin-1字符串视图中,返回从位置size() - 长度开始的长度为长度的子字符串。

如果length大于或等于size(),或者小于0,则返回整个QLatin1字符串视图。

另请参阅first()、last()、sliced()、endsWith()、chopped()、chop()和truncate()。

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

返回由此对象引用的Latin-1字符串的大小。

注意:在Qt 6之前的版本中,此函数返回int,这限制了在64位架构上QLatin1StringView中可以保存的数据量。

[constexpr, since 6.0] QLatin1StringViewQLatin1StringView::sliced(qsizetype pos) const

返回从此字符串视图中位置pos开始,直至结尾的Latin-1字符串视图。

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

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

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

[constexpr, since 6.0] QLatin1StringViewQLatin1StringView::sliced(qsizetype pos, qsizetype n) const

返回一个指向此字符串视图中从位置pos开始的n个字符的Latin-1字符串视图。

注意:pos < 0、n < 0或pos + n > size()时,行为未定义。

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

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

[since 6.0] QStringQLatin1StringView::toString() const

将此Latin-1字符串转换为QString。等同于

return QString(*this);

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

[noexcept] QLatin1StringViewQLatin1StringView::trimmed() const

删除前导和尾随空白字符并返回结果。

空白字符是指QChar::isSpace()返回true的任何字符。这包括ASCII字符'\t'、'\n'、'\v'、'\f'、'\r'和' '。

[constexpr] voidQLatin1StringView::truncate(qsizetype length)

将此字符串截断到长度length

*this = left(length)相同。

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

另请参阅:sliced()、first()、last()、chopped()和chop()。

boolQLatin1StringView::operator!=(const char *other) const

如果此字符串不等于const char指针other,则返回true;否则返回false

其他 const char指针转换为QString使用了QString::fromUtf8()函数。

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

另请参阅 字符串比较

bool QLatin1StringView::operator!=(const QByteArray &other) const

此函数重载了operator!=()。

其他字节数组使用QString::fromUtf8()函数转换为QString

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

bool QLatin1StringView::operator<(const char *other) const

如果此字符串在字典上小于const char指针other,则返回true;否则返回false

其他 const char指针转换为QString使用了QString::fromUtf8()函数。

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

另请参阅 字符串比较

bool QLatin1StringView::operator<(const QByteArray &other) const

这是一个重载函数。

其他字节数组使用QString::fromUtf8()函数转换为QString

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

bool QLatin1StringView::operator<=(const char *other) const

如果此字符串在字典上小于或等于const char指针other,则返回true;否则返回false

其他 const char指针转换为QString使用了QString::fromUtf8()函数。

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

另请参阅 字符串比较

bool QLatin1StringView::operator<=(const QByteArray &other) const

这是一个重载函数。

其他字节数组使用QString::fromUtf8()函数转换为QString

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

bool QLatin1StringView::operator==(const char *other) const

如果字符串等于const char指针other,则返回true;否则返回false

其他 const char指针转换为QString使用了QString::fromUtf8()函数。

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

另请参阅 字符串比较

bool QLatin1StringView::operator==(const QByteArray &other) const

这是一个重载函数。

其他字节数组使用QString::fromUtf8()函数转换为QString

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

bool QLatin1StringView::operator>(const char *other) const

如果此字符串在字典上大于const char指针other,则返回true;否则返回false

其他 const char指针转换为QString使用了QString::fromUtf8()函数。

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

另请参阅 字符串比较

bool QLatin1StringView::operator>(const QByteArray &other) const

这是一个重载函数。

其他字节数组使用QString::fromUtf8()函数转换为QString

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

bool QLatin1StringView::operator>=(const char *other) const

如果此字符串在字典上大于或等于const char指针other,则返回true;否则返回false

其他 const char指针转换为QString使用了QString::fromUtf8()函数。

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

另请参阅 字符串比较

bool QLatin1StringView::operator>=(const QByteArray &other) const

这是一个重载函数。

其他字节数组使用QString::fromUtf8()函数转换为QString

您可以通过在编译应用程序时定义QT_NO_CAST_FROM_ASCII来禁用此重载运算符。如果您想确保所有用户可见的字符串都通过QObject::tr(),这可能很有用,例如。

[constexpr] QLatin1Char QLatin1StringView::operator[](qsizetype pos) const

返回此对象中位置为pos的字符。

注意:此函数不执行错误检查。当pos < 0或pos >= size()时,行为未定义。

另请参阅 at

相关非成员函数

[noexcept] bool operator!=(QLatin1StringView s1, QLatin1StringView s2)

如果字符串 s1 和字符串 s2 在字典顺序上不相等,则返回 true;否则返回 false

[noexcept] bool operator!=(QChar ch, QLatin1StringView s)

如果字符 ch 和字符串 s 在字典顺序上不相等,则返回 true;否则返回 false

[noexcept] bool operator!=(QLatin1StringView s, QChar ch)

如果字符串 s 和字符 ch 在字典顺序上不相等,则返回 true;否则返回 false

[noexcept] bool operator!=(QStringView s1, QLatin1StringView s2)

如果字符串视图 s1 和字符串 s2 在字典顺序上不相等,则返回 true;否则返回 false

[noexcept] bool operator!=(QLatin1StringView s1, QStringView s2)

如果字符串 s1 和字符串视图 s2 在字典顺序上不相等,则返回 true;否则返回 false

bool operator!=(const char *s1, QLatin1StringView s2)

如果 const char 指针 s1 和字符串 s2 在字典顺序上不相等,则返回 true;否则返回 false

[constexpr noexcept,自6.4起] QLatin1StringView operator""_L1(const char *str, size_t size)

字面量运算符,从 char 字符串字面量 str 中创建长度为 sizeQLatin1StringView

以下代码创建了一个 QLatin1StringView

using namespace Qt::Literals::StringLiterals;

auto str = "hello"_L1;

此函数自 Qt 6.4 版本起引入。

另请参阅Qt::Literals::StringLiterals

[noexcept] bool operator<(QLatin1StringView s1, QLatin1StringView s2)

如果字符串 s1 在字典顺序上小于字符串 s2,则返回 true;否则返回 false

[无异常] bool operator<(QChar ch, QLatin1StringView s)

如果字符 ch 在词法上小于字符串 s,则返回 true;否则返回 false

[无异常] bool operator<(QLatin1StringView s, QChar ch)

如果字符串 s 在词法上小于字符 ch,则返回 true;否则返回 false

[无异常] bool operator<(QStringView s1, QLatin1StringView s2)

如果字符串视图 s1 在词法上小于字符串 s2,则返回 true;否则返回 false

[无异常] bool operator<(QLatin1StringView s1, QStringView s2)

如果字符串 s1 在词法上小于字符串视图 s2,则返回 true;否则返回 false

bool operator<(const char *s1, QLatin1StringView s2)

如果 const char 指针 s1 在词法上小于字符串 s2,则返回 true;否则返回 false

[无异常] bool operator<=(QLatin1StringView s1, QLatin1StringView s2)

如果字符串 s1 在词法上小于或等于字符串 s2,则返回 true;否则返回 false

[无异常] bool operator<=(QChar ch, QLatin1StringView s)

如果字符 ch 在词法上小于或等于字符串 s,则返回 true;否则返回 false

[无异常] bool operator<=(QLatin1StringView s, QChar ch)

如果字符串 s 在词法上小于或等于字符 ch,则返回 true;否则返回 false

[无异常] bool operator<=(QStringView s1, QLatin1StringView s2)

如果字符串视图 s1 在字典上小于或等于字符串 s2,则返回 true;否则返回 false

[noexcept] bool operator≤(QLatin1StringView , QStringView )

如果字符串 s1 在字典上小于或等于字符串视图 s2,则返回 true;否则返回 false

bool operator≤(const char *, QLatin1StringView )

如果 const char 指针 s1 在字典上小于或等于字符串 s2,则返回 true;否则返回 false

[noexcept] bool operator==(QLatin1StringView , QLatin1StringView )

如果字符串 s1 在字典上等于字符串 s2,则返回 true;否则返回 false

[noexcept] bool operator==(QChar , QLatin1StringView )

如果字符 ch 在字典上等于字符串 s,则返回 true;否则返回 false

[noexcept] bool operator==(QLatin1StringView , QChar )

如果字符串 s 在字典上等于字符 ch,则返回 true;否则返回 false

[noexcept] bool operator==(QStringView , QLatin1StringView )

如果字符串视图 s1 在字典上等于字符串 s2,则返回 true;否则返回 false

[noexcept] bool operator==(QLatin1StringView , QStringView )

如果字符串 s1 在字典上等于字符串视图 s2,则返回 true;否则返回 false

bool operator==(const char *, QLatin1StringView )

如果 const char 指针 s1 在字典上等于字符串 s2,则返回 true;否则返回 false

[noexcept] bool operator>(QLatin1StringView s1, QLatin1StringView s2)

如果字符串 s1 在词汇上大于字符串 s2,则返回 true;否则返回 false

[noexcept] bool operator>(QChar ch, QLatin1StringView s)

如果字符 ch 在词汇上大于字符串 s,则返回 true;否则返回 false

[noexcept] bool operator>(QLatin1StringView s, QChar ch)

如果字符串 s 在词汇上大于字符 ch,则返回 true;否则返回 false

[noexcept] bool operator>(QStringView s1, QLatin1StringView s2)

如果字符串视图 s1 在词汇上大于字符串 s2,则返回 true;否则返回 false

[noexcept] bool operator>(QLatin1StringView s1, QStringView s2)

如果字符串 s1 在词汇上大于字符串视图 s2,则返回 true;否则返回 false

bool operator>(const char *s1, QLatin1StringView s2)

如果 const char 指针 s1 在词汇上大于字符串 s2,则返回 true;否则返回 false

[noexcept] bool operator>=(QLatin1StringView s1, QLatin1StringView s2)

如果字符串 s1 在词汇上大于或等于字符串 s2,则返回 true;否则返回 false

[noexcept] bool operator>=(QChar ch, QLatin1StringView s)

如果字符 ch 在词汇上大于或等于字符串 s,则返回 true;否则返回 false

[noexcept] bool operator>=(QLatin1StringView s, QChar ch)

如果字符串 s 在词典学上大于或等于字符 ch,则返回 true;否则返回 false

[noexcept] bool operator>=(QStringView s1, QLatin1StringView s2)

如果字符串视图 s1 在词典学上大于或等于字符串 s2,则返回 true;否则返回 false

[noexcept] bool operator>=(QLatin1StringView s1, QStringView s2)

如果字符串 s1 在词典学上大于或等于字符串视图 s2,则返回 true;否则返回 false

bool operator>=(const char *s1, QLatin1StringView s2)

如果 const char 指针 s1 在词典学上大于或等于字符串 s2,则返回 true;否则返回 false

© 2024 The Qt Company Ltd. 本文档中包含的文档贡献是其各自所有者的版权。本文档许可条款遵循由自由软件基金会发布的 GNU 自由文档许可证第 1.3 版。Qt 及其相应标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。