QStaticLatin1StringMatcher Class

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

Die Klasse QStaticLatin1StringMatcher ist eine Kompilierversion von QLatin1StringMatcher. Mehr...

Kopfzeile: #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 (&)[N] patternToMatch)
(since 6.7) auto qMakeStaticCaseSensitiveLatin1StringMatcher(const char (&)[N] patternToMatch)

Detaillierte Beschreibung

Diese Klasse ist nützlich, wenn Ihr Code effizient in Latin-1-Strings nach einer Teilzeichenkette suchen muss, die zur Kompilierungszeit bekannt ist. Dies ist zum Beispiel in Parsern üblich. Die Verwendung von indexIn() eines Matcher-Objekts ist schneller als die Verwendung der indexOf()-Methode der Zeichenkette, in der Sie suchen, insbesondere dann, wenn die zu suchende Zeichenkette wiederholt oder innerhalb einer großen Latin-1-Zeichenkette gesucht wird, die viele Übereinstimmungen mit Präfixen der zu findenden Teilzeichenkette enthalten kann.

Im Gegensatz zu QLatin1StringMatcher berechnet diese Klasse die interne Repräsentation zur Kompilierzeit, so dass sie auch bei einmaligen Latin-1-String-Übereinstimmungen von Vorteil sein kann.

Erstellen Sie den QStaticLatin1StringMatcher, indem Sie qMakeStaticCaseSensitiveLatin1StringMatcher() oder qMakeStaticCaseInsensitiveLatin1StringMatcher() aufrufen und die Latin-1-Zeichenkette, nach der gesucht werden soll, als C-String-Literal übergeben. Speichern Sie den Rückgabewert dieser Funktion in einer static constexpr auto Variable, so dass Sie den N Template-Parameter nicht explizit übergeben müssen.

Rufen Sie dann indexIn() auf der QLatin1StringView auf, in der Sie suchen wollen, genau wie bei QLatin1StringMatcher.

Da diese Klasse so konzipiert ist, dass sie alle Vorabberechnungen zur Kompilierzeit durchführt, bietet sie keine setPattern()- oder setCaseSensitivity()-Methoden.

Hinweis: Das INTEGRITY-Betriebssystem wird derzeit nicht unterstützt.

Siehe auch QLatin1StringMatcher, QStaticByteArrayMatcher, und QByteArrayMatcher.

Dokumentation der Mitgliedsfunktionen

[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 haystack ab der Byte-Position from (Standardwert 0, d.h. ab dem ersten Byte) nach QLatin1StringView pattern(), das im Konstruktor festgelegt wurde. Dabei wird die Groß- und Kleinschreibung beachtet, die ebenfalls im Konstruktor festgelegt wurde.

Gibt die Position zurück, an der das Muster() 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 (&)[N] patternToMatch)

Liefert ein QStaticLatin1StringMatcher mit der korrekten N, die automatisch aus dem übergebenen patternToMatch ermittelt wird, und ohne Unterscheidung zwischen Groß- und Kleinschreibung.

Um den vollen Nutzen aus dieser Funktion zu ziehen, weisen Sie das Ergebnis einer static constexpr auto Variablen zu:

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

Diese Funktion wurde in Qt 6.7 eingeführt.

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

Liefert ein QStaticLatin1StringMatcher mit der korrekten N, die automatisch aus dem übergebenen patternToMatch ermittelt wird, und unter Berücksichtigung der Groß- und Kleinschreibung.

Um den vollen Nutzen aus dieser Funktion zu ziehen, weisen Sie das Ergebnis einer static constexpr auto Variablen zu:

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

Diese Funktion wurde in Qt 6.7 eingeführt.

© 2025 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.