QStaticByteArrayMatcher Class

template <size_t N> class QStaticByteArrayMatcher

Die Klasse QStaticByteArrayMatcher ist eine Kompilierversion von QByteArrayMatcher. Mehr...

Kopfzeile: #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 (&)[N] pattern)

Detaillierte Beschreibung

Diese Klasse ist nützlich, wenn Sie eine Sequenz von Bytes haben, die Sie wiederholt mit einigen Byte-Arrays abgleichen wollen (vielleicht in einer Schleife), oder wenn Sie nach der gleichen Sequenz von Bytes mehrmals im gleichen Byte-Array suchen wollen. Die Verwendung eines Matcher-Objekts und indexIn() ist schneller als der Abgleich eines einfachen QByteArray mit QByteArray::indexOf(), insbesondere bei wiederholtem Abgleich.

Im Gegensatz zu QByteArrayMatcher berechnet diese Klasse die interne Repräsentation zur Kompilierzeit, so dass sie sogar bei einmaligen Byte-Array-Abgleichen von Vorteil sein kann.

Erzeugen Sie den QStaticByteArrayMatcher, indem Sie qMakeStaticByteArrayMatcher() aufrufen und ihm das C-String-Literal übergeben, nach dem Sie suchen möchten. Speichern Sie den Rückgabewert dieser Funktion in einer static const auto Variable, so dass Sie den N Template-Parameter nicht explizit übergeben müssen:

static const auto matcher = qMakeStaticByteArrayMatcher("needle");

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

Da diese Klasse so konzipiert ist, dass sie alle Berechnungen zur Kompilierungszeit vornimmt, bietet sie keine setPattern()-Methode.

Siehe auch QByteArrayMatcher und QStringMatcher.

Dokumentation der Mitgliedsfunktionen

[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 Byte-Array pattern(), das im Konstruktor festgelegt wurde.

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

[noexcept] qsizetype QStaticByteArrayMatcher::indexIn(const char *haystack, qsizetype hlen, qsizetype from = 0) const

Durchsucht die Zeichenkette haystack, die die Länge hlen hat, ab der Byte-Position from (Standardwert 0, d. h. ab dem ersten Byte) nach dem Byte-Array pattern(), das im Konstruktor festgelegt wurde.

Gibt die Position zurück, an der pattern() in haystack übereinstimmte, 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 (&)[N] pattern)

Gibt ein QStaticByteArrayMatcher zurück, bei dem die korrekte N automatisch aus dem übergebenen pattern ermittelt wird.

Um die Vorteile dieser Funktion voll auszunutzen, weisen Sie das Ergebnis einer auto Variablen zu:

static const auto matcher = qMakeStaticByteArrayMatcher("needle");

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