Auf dieser Seite

QStaticByteArrayMatcher Class

template <size_t N> class QStaticByteArrayMatcher

Die 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

Ö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
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.