QStaticByteArrayMatcher Class
template <size_t N> class QStaticByteArrayMatcherDie Klasse „QStaticByteArrayMatcher“ ist eine zur Kompilierungszeit verfügbare Version von „ QByteArrayMatcher “. Mehr...
| Header: | #include <QStaticByteArrayMatcher> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QStaticByteArrayMatcher ist Teil der Klassen für Zeichenfolgendaten.
Öffentliche Funktionen
| qsizetype | indexIn(const QByteArray &haystack, qsizetype from = 0) const |
| qsizetype | indexIn(const char *haystack, qsizetype hlen, qsizetype from = 0) const |
| QByteArray | pattern() const |
Verwandte Nicht-Mitglieder
| QStaticByteArrayMatcher<N> | qMakeStaticByteArrayMatcher(const char (&pattern)[N]) |
Ausführliche Beschreibung
QStaticByteArrayMatcher<N> ist eine Template-Klasse, wobei ` N ` die Länge des zu suchenden Byte-Array-Musters ist (einschließlich des Null-Terminators für Zeichenfolgenliterale). Diese Klasse ist nützlich, wenn Sie eine Byte-Sequenz haben, die Sie wiederholt mit bestimmten Byte-Arrays abgleichen möchten (beispielsweise in einer Schleife), oder wenn Sie mehrmals nach derselben Byte-Sequenz im selben Byte-Array suchen möchten. Die Verwendung eines Matcher-Objekts und der Methode ` indexIn()` ist schneller als der Abgleich eines einfachen ` QByteArray ` mit ` QByteArray::indexOf()`, insbesondere wenn wiederholte Abgleiche stattfinden.
Im Gegensatz zu ` QByteArrayMatcher` berechnet diese Klasse die interne Darstellung zur Kompilierungszeit, sodass sie sogar bei einmaligen Abgleichen von Byte-Arrays Vorteile bietet.
Erstellen Sie den `QStaticByteArrayMatcher`, indem Sie ` qMakeStaticByteArrayMatcher()` aufrufen und dabei das C-Zeichenfolgenliteral übergeben, nach dem Sie suchen möchten. Speichern Sie den Rückgabewert dieser Funktion in einer ` static const auto `-Variablen, damit Sie den Template-Parameter ` N ` nicht explizit übergeben müssen:
static const auto matcher = qMakeStaticByteArrayMatcher("needle");Rufen Sie anschließend ` indexIn()` für die ` QByteArray ` auf, in der Sie suchen möchten – genau wie bei ` QByteArrayMatcher`.
Da diese Klasse darauf ausgelegt ist, alle Berechnungen im Voraus zur Kompilierungszeit durchzuführen, bietet sie keine setPattern()-Methode.
Siehe auch „ QByteArrayMatcher “ und „ QStringMatcher “.
Dokumentation zu den Member-Funktionen
[noexcept] qsizetype QStaticByteArrayMatcher::indexIn(const QByteArray &haystack, qsizetype from = 0) const
Durchsucht die Zeichenkette „ haystack “ ab der Byte-Position „ from “ (Standardwert 0, d. h. ab dem ersten Byte) nach dem im Konstruktor festgelegten Byte-Array „ pattern()“.
Gibt die Position zurück, an der die Zeichenkette „ pattern “ () in „ haystack “ gefunden wurde, oder -1, wenn keine Übereinstimmung gefunden wurde.
[noexcept] qsizetype QStaticByteArrayMatcher::indexIn(const char *haystack, qsizetype hlen, qsizetype from = 0) const
Durchsucht die Zeichenkette „ haystack “ mit der Länge „ hlen “ ab der Byte-Position „ from “ (Standardwert 0, d. h. ab dem ersten Byte) nach dem im Konstruktor festgelegten Byte-Array „ pattern()“.
Gibt die Position zurück, an der pattern() in haystack eine Übereinstimmung gefunden hat, oder -1, wenn keine Übereinstimmung gefunden wurde.
QByteArray QStaticByteArrayMatcher::pattern() const
Gibt das Byte-Array-Muster zurück, nach dem dieser Byte-Array-Matcher suchen wird.
Siehe auch ` QByteArrayMatcher::setPattern()`.
Verwandte Nicht-Mitglieder
[constexpr noexcept] template <size_t N> QStaticByteArrayMatcher<N> qMakeStaticByteArrayMatcher(const char (&pattern)[N])
Gibt einen ` QStaticByteArrayMatcher ` zurück, dessen ` N ` automatisch anhand des übergebenen ` pattern ` ermittelt wird.
Um diese Funktion optimal zu nutzen, weisen Sie das Ergebnis einer „ auto “-Variablen zu:
static const auto matcher = qMakeStaticByteArrayMatcher("needle");© 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.