boyer_moore_searcher クラス
boyer_moore_searcher
クラスは、Boyer-Moore アルゴリズムを使用してオブジェクトのコンストラクターで指定されたシーケンスを検索する関数オブジェクト型です。 検索は、オブジェクトの関数呼び出し演算子に提供される別のシーケンス内で実行されます。 このクラスは、std::search のいずれかのオーバーロードにパラメーターとして渡されます。
構文
template <
class RandomAccessIterator1,
class Hash = hash<typename iterator_traits<RandomAccessIterator1>::value_type>,
class BinaryPredicate = equal_to<>>
class boyer_moore_searcher
{
boyer_moore_searcher(
RandomAccessIterator1 pat_first,
RandomAccessIterator1 pat_last,
Hash hf = Hash(),
BinaryPredicate pred = BinaryPredicate());
template <class RandomAccessIterator2>
pair<RandomAccessIterator2, RandomAccessIterator2> operator()(
RandomAccessIterator2 first,
RandomAccessIterator2 last) const;
};
メンバー
メンバー | 説明 |
---|---|
コンストラクター | |
boyer_moore_searcher | サーチャー インスタンスを構築します。 |
オペレーター | |
operator() | シーケンスに対して操作を呼び出します。 |
boyer_moore_searcher コンストラクター
検索するシーケンス、ハッシュ関数オブジェクト、等値述語を使用して、boyer_moore_searcher
関数オブジェクトを構築します。
boyer_moore_searcher(
RandomAccessIterator pat_first,
RandomAccessIterator pat_last,
Hash hf = Hash(),
BinaryPredicate pred = BinaryPredicate());
パラメーター
pat_first
検索するシーケンスの最初の要素。
pat_last
検索するシーケンスの末尾。
hf
シーケンス要素をハッシュするために使用される呼び出し可能オブジェクト。
pred
シーケンス要素の省略可能な等値比較述語。 等値比較型が指定されていない場合、既定値は std::equal_to
になります。
解説
BinaryPredicate、Hash、または RandomAccessIterator 型のコピー コンストラクター、または BinaryPredicate または Hash の呼び出し演算子によってスローされた例外をスローします。
このクラスは、C++ 17 で新しく追加されたものです。
operator()
関数オブジェクトの呼び出し演算子。 引数シーケンス [first, last)
内で、コンストラクターに指定されたシーケンスを検索します。
template <class ForwardIterator2>
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_horspool_searcher クラス
std::search