Spec-Zone.ru › Qt 5.9

Класс QStaticByteArrayMatcher

Класс QStaticByteArrayMatcher — это версия класса QByteArrayMatcher, скомпилированная на этапе компиляции. Подробнее...

Заголовок: #include <QStaticByteArrayMatcher>
qmake: QT += core
С версии: Qt 5.9

Подробное описание

Класс QStaticByteArrayMatcher — это версия класса QByteArrayMatcher, скомпилированная на этапе компиляции.

Этот класс полезен, когда у вас есть последовательность байтов, которую вы хотите многократно сопоставлять с некоторыми массивами байтов (например, в цикле) или когда вы хотите найти одну и ту же последовательность байтов несколько раз в одном и том же массиве байтов. Использование объекта соответствия и метода indexIn() быстрее, чем сопоставление обычного объекта QByteArray с методом QByteArray::indexOf(), особенно если происходит многократное сопоставление.

В отличие от QByteArrayMatcher, этот класс вычисляет внутреннее представление на этапе компиляции, если ваш компилятор поддерживает уровень C++14 constexpr (C++11 недостаточно), поэтому он может быть полезен даже при одноразовых сопоставлениях массивов байтов.

Создайте QStaticByteArrayMatcher с помощью вызова qMakeStaticByteArrayMatcher(), передав ему строку-литерал C, которую вы хотите найти. Сохраните результат этой функции в static const auto переменной, чтобы вам не нужно было явно передавать N параметр шаблона:

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

Затем вызовите indexIn() для QByteArray, в котором вы хотите выполнить поиск, точно так же, как с QByteArrayMatcher.

Поскольку этот класс разработан для выполнения всех предварительных вычислений на этапе компиляции, он не предлагает метод setPattern().

См. также QByteArrayMatcher и QStringMatcher.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qstaticbytearraymatcher.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API