Sur cette page

QStaticByteArrayMatcher Class

template <size_t N> class QStaticByteArrayMatcher

La classe QStaticByteArrayMatcher est une version compilée de QByteArrayMatcher. Plus....

En-tête : #include <QStaticByteArrayMatcher>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Fonctions publiques

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)

Description détaillée

Cette classe est utile lorsque vous avez une séquence d'octets que vous souhaitez comparer à plusieurs reprises à des tableaux d'octets (peut-être dans une boucle), ou lorsque vous souhaitez rechercher la même séquence d'octets plusieurs fois dans le même tableau d'octets. L'utilisation d'un objet matcher et de indexIn() est plus rapide que la mise en correspondance d'un simple QByteArray avec QByteArray::indexOf(), en particulier si la mise en correspondance est répétée.

Contrairement à QByteArrayMatcher, cette classe calcule la représentation interne au moment de la compilation, de sorte qu'elle peut même être utile si vous effectuez des correspondances ponctuelles de tableaux d'octets.

Créez le QStaticByteArrayMatcher en appelant qMakeStaticByteArrayMatcher(), en lui transmettant le littéral de la chaîne C que vous souhaitez rechercher. Stockez la valeur de retour de cette fonction dans une variable static const auto, de sorte que vous n'ayez pas besoin de passer explicitement le paramètre de modèle N:

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

Appelez ensuite indexIn() sur le site QByteArray dans lequel vous souhaitez effectuer la recherche, comme pour QByteArrayMatcher.

Étant donné que cette classe est conçue pour effectuer tous les calculs initiaux à la compilation, elle ne propose pas de méthode setPattern().

Voir également QByteArrayMatcher et QStringMatcher.

Documentation des fonctions membres

[noexcept] qsizetype QStaticByteArrayMatcher::indexIn(const QByteArray &haystack, qsizetype from = 0) const

Recherche dans la chaîne de caractères haystack, à partir de la position d'octet from (par défaut 0, c'est-à-dire à partir du premier octet), le tableau d'octets pattern() qui a été défini dans le constructeur.

Retourne la position à laquelle pattern() correspond dans haystack, ou -1 si aucune correspondance n'a été trouvée.

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

Recherche dans la chaîne de caractères haystack, de longueur hlen, à partir de la position d'octet from (par défaut 0, c'est-à-dire à partir du premier octet), le tableau d'octets pattern() qui a été défini dans le constructeur.

Renvoie la position à laquelle pattern() correspond dans haystack, ou -1 si aucune correspondance n'a été trouvée.

QByteArray QStaticByteArrayMatcher::pattern() const

Renvoie le motif de tableau d'octets que ce matcheur de tableau d'octets va rechercher.

Voir aussi QByteArrayMatcher::setPattern().

Non-membres associés

[constexpr noexcept] template <size_t N> QStaticByteArrayMatcher<N> qMakeStaticByteArrayMatcher(const char (&)[N] pattern)

Retourne un QStaticByteArrayMatcher avec le bon N déterminé automatiquement à partir du pattern transmis.

Pour tirer pleinement parti de cette fonction, affectez le résultat à une variable auto:

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.