Sur cette page

QStaticByteArrayMatcher Class

template <size_t N> class QStaticByteArrayMatcher

La classe `QStaticByteArrayMatcher` est une version « à la compilation » de ` QByteArrayMatcher`. En savoir 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 (&pattern)[N])

Description détaillée

QStaticByteArrayMatcher<N> est une classe de modèle où N correspond à la longueur du motif de tableau d'octets à rechercher (y compris le caractère de fin de chaîne pour les littéraux de chaîne). Cette classe est utile lorsque vous disposez d’une séquence d’octets que vous souhaitez comparer de manière répétée à plusieurs tableaux d’octets (par exemple dans une boucle), ou lorsque vous souhaitez rechercher plusieurs fois la même séquence d’octets dans un même tableau d’octets. L'utilisation d'un objet « matcher » et de la méthode ` indexIn()` est plus rapide que la comparaison d'un ` QByteArray ` simple avec la méthode ` QByteArray::indexOf()`, en particulier si des comparaisons répétées ont lieu.

Contrairement à ` QByteArrayMatcher`, cette classe calcule la représentation interne lors de la compilation; elle peut donc s’avérer avantageuse même si vous effectuez des recherches ponctuelles dans un tableau d’octets.

Créez l’objet `QStaticByteArrayMatcher` en appelant ` qMakeStaticByteArrayMatcher()`, en lui passant la chaîne littérale C que vous souhaitez rechercher. Stockez la valeur de retour de cette fonction dans une variable de type ` static const auto `, afin de ne pas avoir à passer explicitement le paramètre de modèle ` N ` :

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

Appelez ensuite indexIn() sur l’ QByteArray dans lequel vous souhaitez effectuer la recherche, exactement comme avec QByteArrayMatcher.

Comme cette classe est conçue pour effectuer tous les calculs en amont, au moment de 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 la chaîne de caractères haystack, à partir de la position d'octet from (valeur par défaut : 0, c'est-à-dire à partir du premier octet), pour trouver le tableau d'octets pattern() défini dans le constructeur.

Renvoie la position à laquelle la chaîne « pattern » () a été trouvée 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 la chaîne de caractères haystack, d'une longueur de hlen, à partir de la position d'octet from (par défaut 0, c'est-à-dire à partir du premier octet), pour trouver le tableau d'octets pattern() défini dans le constructeur.

Renvoie la position à laquelle la chaîne « pattern » a été trouvée dans « haystack », ou -1 si aucune correspondance n’a été trouvée.

QByteArray QStaticByteArrayMatcher::pattern() const

Renvoie le motif sous forme de tableau d'octets que ce comparateur de tableaux d'octets va rechercher.

Voir aussi QByteArrayMatcher::setPattern().

Éléments non membres associés

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

Renvoie une variable ` QStaticByteArrayMatcher ` contenant l’ N s correctes, déterminées automatiquement à partir de l’ pattern fournie.

Pour tirer pleinement parti de cette fonction, affectez le résultat à une variable de type ` 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.