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 (&pattern)[N]) |
詳細な説明
QStaticByteArrayMatcher<N> は、N が検索対象のバイト配列パターンの長さ(文字列リテラルのヌル終端を含む)となるテンプレートクラスです。 このクラスは、一連のバイトを(ループなどで)いくつかのバイト配列に対して繰り返し照合したい場合や、同じバイト配列内で同じ一連のバイトを複数回検索したい場合に役立ちます。 マッチャーオブジェクトと `indexIn()` を使用する方が、特に繰り返しマッチングを行う場合、単純な `QByteArray ` を `QByteArray::indexOf()` でマッチングするよりも高速です。
QByteArrayMatcher とは異なり、このクラスはコンパイル時に内部表現を計算するため、1回限りのバイト配列のマッチングを行う場合でもメリットが得られます。
qMakeStaticByteArrayMatcher() を呼び出し、検索対象の C 文字列リテラルを引数として渡すことで、QStaticByteArrayMatcher を作成します。その関数の戻り値を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
バイト位置from (デフォルトは 0、つまり最初のバイトから)から、文字列haystack に対して、コンストラクタで設定されたバイト配列pattern() を検索します。
pattern() がhaystack 内で一致した位置を返します。一致が見つからなかった場合は -1 を返します。
[noexcept] qsizetype QStaticByteArrayMatcher::indexIn(const char *haystack, qsizetype hlen, qsizetype from = 0) const
長さhlen の文字列haystack を、バイト位置from (デフォルトは 0、つまり最初のバイトから)から、コンストラクタで設定されたバイト配列pattern() に対して検索します。
pattern() がhaystack 内で一致した位置を返します。一致が見つからなかった場合は -1 を返します。
QByteArray QStaticByteArrayMatcher::pattern() const
このバイト配列マッチャーが検索対象とするバイト配列のパターンを返します。
QByteArrayMatcher::setPattern()も参照してください 。
関連する非メンバー関数
[constexpr noexcept] template <size_t N> QStaticByteArrayMatcher<N> qMakeStaticByteArrayMatcher(const char (&pattern)[N])
渡されたpattern から自動的に決定された正しいN を持つQStaticByteArrayMatcher を返します。
この関数の機能を最大限に活用するには、結果を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.