QStaticByteArrayMatcher Class

template <size_t N> class QStaticByteArrayMatcher

QStaticByteArrayMatcherクラスは、QByteArrayMatcher のコンパイル時バージョンです

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

パブリック関数

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)

詳細な説明

このクラスは、バイト配列に対して繰り返しマッチさせたいバイト列がある場合(おそらくループ内)、または同じバイト配列内で同じバイト列を複数回検索したい場合に便利です。matcher オブジェクトとindexIn() を使用すると、プレーンなQByteArrayQByteArray::indexOf() でマッチさせるよりも高速になります。

QByteArrayMatcher とは異なり、このクラスはコンパイル時に内部表現を計算するため、1 回限りのバイト配列マッチを行う場合にも役立ちます。

qMakeStaticByteArrayMatcher() を呼び出して QStaticByteArrayMatcher を作成し、検索したい C 文字列リテラルを渡します。この関数の返り値はstatic const auto 変数に格納されるので、N テンプレート・パラメータを明示的に渡す必要はありません:

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

次に、QByteArrayMatcher と同じように、検索したいQByteArray に対してindexIn() を呼び出します。

このクラスは、コンパイル時にすべての先行計算を行うように設計されているため、 setPattern() メソッドは提供されていません。

QByteArrayMatcher およびQStringMatcherも参照して ください。

メンバ関数ドキュメント

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

コンストラクタで設定されたバイト配列pattern() のバイト位置from (デフォルト 0、つまり最初のバイトから) から、文字列haystack を検索します。

haystackpattern() がマッチした位置、またはマッチしなかった場合は -1 を返します。

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

hlen の長さを持つ文字列haystack を、コンストラクタで設定されたバイト配列pattern() のバイト位置from (デフォルト 0、つまり最初のバイトから) から検索します。

haystackpattern() がマッチした位置を返し、マッチしなかった場合は -1 を返す。

QByteArray QStaticByteArrayMatcher::pattern() const

このバイト配列マッチャが検索するバイト配列パターンを返します。

QByteArrayMatcher::setPattern()も参照してください

関連する非メンバ

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

渡されたpattern から自動的に決定された正しいN を持つQStaticByteArrayMatcher を返す。

この関数を最大限に活用するには、結果をauto 変数に代入します:

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

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。