boyer_moore_horspool_searcher クラス

boyer_moore_horspool_searcher クラスは、Boyer-Moore-Horspool アルゴリズムを使用してオブジェクトのコンストラクターで指定されたシーケンスを検索する関数オブジェクト型です。 検索は、オブジェクトの関数呼び出し演算子に提供される別のシーケンス内で実行されます。 このクラスは、std::search のいずれかのオーバーロードにパラメーターとして渡されます。

構文

template <
    class RandomAccessIterator,
    class Hash = hash<typename iterator_traits<RandomAccessIterator>::value_type>,
    class BinaryPredicate = equal_to<>>
class boyer_moore_horspool_searcher
{
    boyer_moore_horspool_searcher(
        RandomAccessIterator pat_first,
        RandomAccessIterator pat_last,
        Hash hf = Hash(),
        BinaryPredicate pred = BinaryPredicate());

    template <class RandomAccessIterator2>
    pair<RandomAccessIterator2, RandomAccessIterator2> operator()(
        RandomAccessIterator2 first,
        RandomAccessIterator2 last) const;
};

メンバー

メンバー 説明
コンストラクター
boyer_moore_horspool_searcher サーチャー インスタンスを構築します。
オペレーター
operator() シーケンスに対して操作を呼び出します。

boyer_moore_horspool_searcher コンストラクター

検索するシーケンス、ハッシュ関数オブジェクト、等値述語を使用して、boyer_moore_horspool_searcher 関数オブジェクトを構築します。

boyer_moore_horspool_searcher(
    RandomAccessIterator pat_first,
    RandomAccessIterator pat_last,
    Hash hf = Hash(),
    BinaryPredicate pred = BinaryPredicate());

パラメーター

pat_first
検索するシーケンスの最初の要素。

pat_last
検索するシーケンスの末尾。

hf
シーケンス要素をハッシュするために使用される呼び出し可能オブジェクト。

pred
シーケンス要素の省略可能な等値比較述語。 等値比較型が指定されていない場合、既定値は std::equal_to になります。

解説

BinaryPredicateHash、または RandomAccessIterator 型のコピー コンストラクター、または BinaryPredicate または Hash の呼び出し演算子によってスローされた例外をスローします。

このクラスは、C++ 17 で新しく追加されたものです。

operator()

関数オブジェクトの呼び出し演算子。 引数シーケンス [first, last) 内で、コンストラクターに指定されたシーケンスを検索します。

template <class ForwardIterator2>   // C++17
pair<RandomAccessIterator2, RandomAccessIterator2> operator()(
    RandomAccessIterator2 first,
    RandomAccessIterator2 last) const;

パラメーター

first
検索範囲内のシーケンスの最初の要素。

last
検索範囲内のシーケンスの末尾。

解説

検索パターン [pat_first, pat_last) が空の場合、make_pair(first, first) を返します。 検索パターンが見つからない場合、make_pair(last, last) を返します。 それ以外の場合は、述語 pred に従って [pat_first, pat_last) と等しい [first, last) のシーケンスの先頭と末尾への反復子のペアを返します。

このクラスは、C++ 17 で新しく追加されたものです。

関連項目

<functional>
algorithm 関数
boyer_moore_searcher class
std::search