QStaticLatin1StringMatcher Class
template <Qt::CaseSensitivity CS, size_t N> class QStaticLatin1StringMatcherQStaticLatin1StringMatcher クラスは、QLatin1StringMatcher のコンパイル時バージョンです。詳細...
| ヘッダー: | #include <QStaticLatin1StringMatcher> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 以下のように: | Qt 6.7 |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QStaticLatin1StringMatcher は、文字列データ用のクラス群の一部です。
パブリック関数
| qsizetype | indexIn(QLatin1StringView haystack, qsizetype from = 0) const |
| qsizetype | indexIn(QStringView haystack, qsizetype from = 0) const |
関連する非メンバー
(since 6.7) auto | qMakeStaticCaseInsensitiveLatin1StringMatcher(const char (&patternToMatch)[N]) |
(since 6.7) auto | qMakeStaticCaseSensitiveLatin1StringMatcher(const char (&patternToMatch)[N]) |
詳細な説明
QStaticLatin1StringMatcher<CS, N> は、CS が照合に使用するQt::CaseSensitivity 、N が検索するパターンの長さ(文字列リテラルのヌル終端文字を含む)であるテンプレートクラスです。
このクラスは、コンパイル時に既知の部分文字列を Latin-1 文字列内で効率的に検索する必要がある場合に役立ちます。これは、たとえばパーサーなどでよく見られます。 マッチャーオブジェクトの `indexIn()` を使用する方が、検索対象の文字列の `indexOf()` メンバメソッドを使用するよりも高速です。これは、特に、検索対象の文字列が繰り返し検索される場合や、検索対象のサブストリングの接頭辞に一致する箇所が多数含まれる可能性のある大きな Latin-1 文字列内で検索を行う場合に顕著です。
QLatin1StringMatcher とは異なり、このクラスはコンパイル時に内部表現を計算するため、Latin-1文字列の一回限りのマッチングを行う場合でも有益です。
qMakeStaticCaseSensitiveLatin1StringMatcher() またはqMakeStaticCaseInsensitiveLatin1StringMatcher() を呼び出し、検索対象の Latin-1 文字列を C 文字列リテラルとして渡すことで、QStaticLatin1StringMatcher を作成します。その関数の戻り値をstatic constexpr auto 変数に格納しておけば、N テンプレートパラメータを明示的に渡す必要がなくなります。
その後、QLatin1StringMatcher と同様に、検索対象の `QLatin1StringView ` に対して `indexIn()` を呼び出します。
このクラスは、コンパイル時にすべての事前計算を行うように設計されているため、setPattern() や setCaseSensitivity() メソッドは提供されていません。
注:INTEGRITY オペレーティングシステムは現在サポートされていません。
QLatin1StringMatcher 、QStaticByteArrayMatcher 、およびQByteArrayMatcherも参照してください 。
メンバ関数のドキュメント
[constexpr noexcept] qsizetype QStaticLatin1StringMatcher::indexIn(QLatin1StringView haystack, qsizetype from = 0) const
[constexpr noexcept] qsizetype QStaticLatin1StringMatcher::indexIn(QStringView haystack, qsizetype from = 0) const
QLatin1StringView haystack に対し、バイト位置from (デフォルトは 0、つまり最初のバイトから)から、コンストラクタで設定されたQLatin1StringView pattern() を検索します。コンストラクタで設定された大文字小文字の区別設定を使用します。
haystack 内でpattern()が一致した位置を返します。一致が見つからなかった場合は-1を返します。
関連する非メンバ関数
[constexpr noexcept, since 6.7] template <size_t N> auto qMakeStaticCaseInsensitiveLatin1StringMatcher(const char (&patternToMatch)[N])
渡されたpatternToMatch から自動的に判定された正しいN を持つQStaticLatin1StringMatcher を返します。大文字と小文字は区別されません。
この関数を最大限に活用するには、結果をstatic constexpr auto 型の変数に代入してください:
static constexpr auto matcher = qMakeStaticCaseInsensitiveLatin1StringMatcher("needle");この関数は Qt 6.7 で導入されました。
[constexpr noexcept, since 6.7] template <size_t N> auto qMakeStaticCaseSensitiveLatin1StringMatcher(const char (&patternToMatch)[N])
渡されたpatternToMatch から自動的に決定された正しいN を持つQStaticLatin1StringMatcher を、大文字と小文字を区別して返します。
この関数を最大限に活用するには、結果をstatic constexpr auto 型の変数に代入してください:
static constexpr auto matcher = qMakeStaticCaseSensitiveLatin1StringMatcher("needle");この関数は Qt 6.7 で導入されました。
© 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.