QStaticByteArrayMatcher Class
template <size_t N> class QStaticByteArrayMatcherQStaticByteArrayMatcherクラスは、QByteArrayMatcher のコンパイル時バージョンである。
ヘッダー | #include <QStaticByteArrayMatcher> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 継承メンバを含む全メンバ一覧
- QStaticByteArrayMatcher は、文字列データのクラスに属しています。
パブリック関数
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() を使用すると、プレーンなQByteArray をQByteArray::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、つまり先頭バイトから) から検索します。
haystack でpattern() がマッチした位置を返すか、マッチしなかった場合は -1 を返します。
[noexcept]
qsizetype QStaticByteArrayMatcher::indexIn(const char *haystack, qsizetype hlen, qsizetype from = 0) const
長さhlen の文字列haystack を、コンストラクタで設定されたバイト配列pattern() のバイト位置from (デフォルト 0、つまり先頭バイトから) から検索する。
haystack でpattern() がマッチした位置を返すか、マッチしなかった場合は -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.