QStaticLatin1StringMatcher 类
template <Qt::CaseSensitivity CS, size_t N> class QStaticLatin1StringMatcherQStaticLatin1StringMatcher 类是 QLatin1StringMatcher 的编译时版本。 更多...
头文件 | #include <QStaticLatin1StringMatcher> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
自 | Qt 6.7 |
- 所有成员的列表,包括继承的成员
- QStaticLatin1StringMatcher 是 字符串数据类 的一部分。
公共函数
qsizetype | indexIn(QLatin1StringView haystack, qsizetype from = 0) const |
相关非成员
(自 6.7) auto | qMakeStaticCaseInsensitiveLatin1StringMatcher(const char (&)[N] patternToMatch) |
(自 6.7) auto | qMakeStaticCaseSensitiveLatin1StringMatcher(const char (&)[N] patternToMatch) |
详细描述
此类在您的代码需要高效地搜索已知编译时的 Latin-1 字符串中的子串时非常有用。这在解析器中很常见。使用匹配器对象的 indexIn() 比使用你要搜索的字符串的 indexOf() 成员方法更快,尤其是在要查找的字符串将在重复搜索或在大尺寸 Latin-1 字符串中重复多次,且该字符串可能有多个预期子串前缀匹配时。
与 QLatin1StringMatcher 不同,此类在 编译时 计算内部表示,因此即使您只是进行一次性 Latin-1 字符串匹配,它也可能有益。
通过调用 qMakeStaticCaseSensitiveLatin1StringMatcher() 或 qMakeStaticCaseInsensitiveLatin1StringMatcher(),并将要搜索的 Latin-1 字符串作为 C 字符串字面量传递来创建 QStaticLatin1StringMatcher。在 static constexpr auto
变量中存储该函数的返回值,这样您就无需明确传递 N
模板参数。
然后,像使用 QLatin1StringMatcher 一样,在您想要搜索的 QLatin1StringView 上调用 indexIn()。
由于此类旨在在编译时执行全部前置计算,因此它不提供 setPattern() 或 setCaseSensitivity() 方法。
注意:目前不支持 INTEGRITY 操作系统。
另请参阅:QLatin1StringMatcher,QStaticByteArrayMatcher 和 QByteArrayMatcher。
成员函数文档
[constexpr noexcept]
qsizetype QStaticLatin1StringMatcher::indexIn(QLatin1StringView haystack, qsizetype from = 0) const
从字节位置 from (默认 0,即第一个字节) 开始搜索 QLatin1StringView haystack 中设置的 QLatin1StringView 模式()。使用在构造函数中也设置的相同大小写敏感度。
返回模式()在 haystack 中匹配的位置,如果没有找到匹配项则返回 -1。
相关非成员
[constexpr noexcept, since 6.7]
模板 <auto qMakeStaticCaseInsensitiveLatin1StringMatcher(const char (&)[N] patternToMatch)
返回一个 QStaticLatin1StringMatcher,该匹配器的正确 N
由 patternToMatch 自动确定,并且不考虑大小写。
要充分利用此函数,请将结果分配给 static constexpr auto
变量
static constexpr auto matcher = qMakeStaticCaseInsensitiveLatin1StringViewMatcher("needle");
此函数首次在 Qt 6.7 中引入。
[constexpr noexcept, since 6.7]
模板 <auto qMakeStaticCaseSensitiveLatin1StringMatcher(const char (&)[N] patternToMatch)
返回一个 QStaticLatin1StringMatcher,该匹配器的正确 N
由 patternToMatch 自动确定,并且考虑大小写。
要充分利用此函数,请将结果分配给 static constexpr auto
变量
static constexpr auto matcher = qMakeStaticCaseSensitiveLatin1StringViewMatcher("needle");
此函数首次在 Qt 6.7 中引入。
© 2024 The Qt Company Ltd. 本文档中的贡献是各自所有者的版权。本文档是根据由自由软件基金会发布的 GNU 自由文档许可版 1.3 的条款授权的。Qt 及其相应标志是芬兰及/或其他国家/地区的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。