Auf dieser Seite

QStaticLatin1StringMatcher Class

template <Qt::CaseSensitivity CS, size_t N> class QStaticLatin1StringMatcher

Die Klasse „QStaticLatin1StringMatcher“ ist eine zur Kompilierungszeit ausgeführte Version von „ QLatin1StringMatcher “. Mehr...

Header: #include <QStaticLatin1StringMatcher>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Seit: Qt 6.7

Öffentliche Funktionen

qsizetype indexIn(QLatin1StringView haystack, qsizetype from = 0) const
qsizetype indexIn(QStringView haystack, qsizetype from = 0) const
(since 6.7) auto qMakeStaticCaseInsensitiveLatin1StringMatcher(const char (&patternToMatch)[N])
(since 6.7) auto qMakeStaticCaseSensitiveLatin1StringMatcher(const char (&patternToMatch)[N])

Ausführliche Beschreibung

QStaticLatin1StringMatcher<CS, N> ist eine Template-Klasse, wobei „ CS “ die für den Abgleich zu verwendende „ Qt::CaseSensitivity “ und „ N “ die Länge des zu suchenden Musters ist (einschließlich des Null-Terminators für Zeichenfolgenliterale).

Diese Klasse ist nützlich, wenn Ihr Code in Latin-1-Zeichenketten effizient nach einer Teilstring suchen muss, die zur Kompilierungszeit bekannt ist. Dies ist beispielsweise in Parsern häufig der Fall. Die Verwendung der Methode ` indexIn()` eines Matcher-Objekts ist schneller als die Verwendung der Member-Methode `indexOf()` der zu durchsuchenden Zeichenkette, insbesondere wenn die gesuchte Zeichenkette wiederholt oder innerhalb einer großen Latin-1-Zeichenkette gesucht wird, die möglicherweise viele Übereinstimmungen mit Präfixen der gesuchten Teilzeichenkette enthält.

Im Gegensatz zu ` QLatin1StringMatcher` berechnet diese Klasse die interne Darstellung bereits zur Kompilierungszeit, sodass sie selbst bei einmaligen Abgleichen mit Latin-1-Zeichenketten von Vorteil sein kann.

Erstellen Sie den `QStaticLatin1StringMatcher`, indem Sie ` qMakeStaticCaseSensitiveLatin1StringMatcher()` oder ` qMakeStaticCaseInsensitiveLatin1StringMatcher()` aufrufen und dabei die zu durchsuchende Latin-1-Zeichenkette als C-Zeichenfolgenliteral übergeben. Speichern Sie den Rückgabewert dieser Funktion in einer ` static constexpr auto `-Variablen, damit Sie den Template-Parameter ` N ` nicht explizit übergeben müssen.

Rufen Sie anschließend ` indexIn()` für das ` QLatin1StringView ` auf, in dem Sie suchen möchten – genau wie bei ` QLatin1StringMatcher`.

Da diese Klasse darauf ausgelegt ist, alle Berechnungen im Voraus zur Kompilierungszeit durchzuführen, bietet sie keine Methoden wie `setPattern()` oder `setCaseSensitivity()` an.

Hinweis: Das BetriebssystemINTEGRITY wird derzeit nicht unterstützt.

Siehe auch QLatin1StringMatcher, QStaticByteArrayMatcher und QByteArrayMatcher.

Dokumentation zu den Member-Funktionen

[constexpr noexcept] qsizetype QStaticLatin1StringMatcher::indexIn(QLatin1StringView haystack, qsizetype from = 0) const

[constexpr noexcept] qsizetype QStaticLatin1StringMatcher::indexIn(QStringView haystack, qsizetype from = 0) const

Durchsucht die Datei „ QLatin1StringView “ unter haystack ab der Byte-Position from (Standardwert 0, d. h. ab dem ersten Byte) nach dem Muster „ QLatin1StringView “, das im Konstruktor festgelegt wurde. Dabei wird die im Konstruktor festgelegte Groß-/Kleinschreibung berücksichtigt.

Gibt die Position zurück, an der das Muster `pattern()` in ` haystack` übereinstimmte, oder -1, wenn keine Übereinstimmung gefunden wurde.

Verwandte Nicht-Mitglieder

[constexpr noexcept, since 6.7] template <size_t N> auto qMakeStaticCaseInsensitiveLatin1StringMatcher(const char (&patternToMatch)[N])

Gibt ein ` QStaticLatin1StringMatcher ` zurück, wobei der korrekte ` N ` automatisch aus dem übergebenen ` patternToMatch ` ermittelt wird, ohne dass die Groß-/Kleinschreibung berücksichtigt wird.

Um diese Funktion optimal zu nutzen, weisen Sie das Ergebnis einer ` static constexpr auto `-Variablen zu:

static constexpr auto matcher = qMakeStaticCaseInsensitiveLatin1StringMatcher("needle");

Diese Funktion wurde in Qt 6.7 eingeführt.

[constexpr noexcept, since 6.7] template <size_t N> auto qMakeStaticCaseSensitiveLatin1StringMatcher(const char (&patternToMatch)[N])

Gibt einen ` QStaticLatin1StringMatcher ` zurück, dessen Wert ` N ` automatisch aus dem übergebenen ` patternToMatch ` ermittelt wird, wobei die Groß-/Kleinschreibung beachtet wird.

Um diese Funktion optimal zu nutzen, weisen Sie das Ergebnis einer ` static constexpr auto `-Variablen zu:

static constexpr auto matcher = qMakeStaticCaseSensitiveLatin1StringMatcher("needle");

Diese Funktion wurde in Qt 6.7 eingeführt.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.