QStaticByteArrayMatcher Class

template <size_t N> class QStaticByteArrayMatcher

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

ヘッダー #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

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

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");

© 2025 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.