QStaticByteArrayMatcher Class
template <size_t N> class QStaticByteArrayMatcherLa 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 |
- Liste de tous les membres, y compris les membres hérités
- QStaticByteArrayMatcher fait partie des Classes pour les données de type chaîne de caractères.
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 |
Non-membres apparentés
| 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.