En esta página

QStaticByteArrayMatcher Class

template <size_t N> class QStaticByteArrayMatcher

La clase QStaticByteArrayMatcher es una versión en tiempo de compilación de QByteArrayMatcher. Más...

Cabecera: #include <QStaticByteArrayMatcher>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Funciones Públicas

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)

Descripción Detallada

Esta clase es útil cuando tienes una secuencia de bytes que quieres comparar repetidamente con algunas matrices de bytes (quizás en un bucle), o cuando quieres buscar la misma secuencia de bytes múltiples veces en la misma matriz de bytes. Utilizar un objeto matcher y indexIn() es más rápido que comparar un QByteArray plano con QByteArray::indexOf(), en particular si se producen comparaciones repetidas.

A diferencia de QByteArrayMatcher, esta clase calcula la representación interna en tiempo de compilación, por lo que puede incluso beneficiarse si está haciendo coincidencias de matrices de bytes una sola vez.

Crea el QStaticByteArrayMatcher llamando a qMakeStaticByteArrayMatcher(), pasándole la cadena literal en C que quieres buscar. Almacena el valor de retorno de esa función en una variable static const auto, para que no necesites pasarle explícitamente el parámetro de plantilla N:

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

A continuación, llame a indexIn() en el QByteArray en el que desea buscar, al igual que con QByteArrayMatcher.

Dado que esta clase está diseñada para realizar todos los cálculos previos en tiempo de compilación, no ofrece un método setPattern().

Véase también QByteArrayMatcher y QStringMatcher.

Documentación de las funciones miembro

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

Busca en la cadena de caracteres haystack, desde la posición de byte from (por defecto 0, es decir, desde el primer byte), la matriz de bytes pattern() que se estableció en el constructor.

Devuelve la posición en la que pattern() coincidió en haystack, o -1 si no se encontró ninguna coincidencia.

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

Busca en la cadena de caracteres haystack, que tiene la longitud hlen, desde la posición de byte from (por defecto 0, es decir, desde el primer byte), la matriz de bytes pattern() que se estableció en el constructor.

Devuelve la posición en la que pattern() coincidió en haystack, o -1 si no se encontró ninguna coincidencia.

QByteArray QStaticByteArrayMatcher::pattern() const

Devuelve el patrón de matriz de bytes que buscará este comparador de matrices de bytes.

Véase también QByteArrayMatcher::setPattern().

No miembros relacionados

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

Devuelve un QStaticByteArrayMatcher con el N correcto determinado automáticamente a partir del pattern pasado.

Para aprovechar al máximo esta función, asigne el resultado a una 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.