QStaticByteArrayMatcher Class
template <size_t N> class QStaticByteArrayMatcherDie 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 |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QStaticByteArrayMatcher ist Teil von Klassen für String-Daten.
Ö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 |
Zugehörige Nicht-Mitglieder
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.