Share via


classe boyer_moore_searcher

La boyer_moore_searcher classe est un type d’objet de fonction qui utilise l’algorithme Boyer-Moore pour rechercher une séquence spécifiée dans le constructeur de l’objet. La recherche est effectuée dans une autre séquence fournie à l’opérateur d’appel de fonction de l’objet. Cette classe est passée en tant que paramètre à l’une des surcharges de std ::search.

Syntaxe

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;
};

Membres

Membre Description
Constructeur
boyer_moore_searcher Construit une instance de l’analyseur de recherche.
Opérateurs
operator() Appelle l’opération sur la séquence.

constructeur boyer_moore_searcher

Construit un boyer_moore_searcher objet de fonction à l’aide de la séquence pour rechercher, un objet de fonction de hachage et un prédicat d’égalité.

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

Paramètres

pat_first
Élément initial de la séquence à rechercher.

pat_last
Fin de la séquence à rechercher.

Hf
Objet pouvant être appelé, utilisé pour hacher les éléments de séquence.

Pred
Prédicat de comparaison d’égalité facultatif pour les éléments de séquence. Si aucun type de comparaison d’égalité n’est spécifié, la valeur par défaut est std::equal_to.

Notes

Lève toute exception levée par le constructeur de copie des types BinaryPredicate, Hash ou RandomAccessIterator, ou l’opérateur d’appel de BinaryPredicate ou de Hash.

Cette classe est nouvelle en C++17.

operator()

Opérateur d’appel de l’objet de fonction. Recherche dans la séquence [first, last) d’arguments la séquence spécifiée au constructeur.

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

Paramètres

first
Élément initial de la séquence à rechercher.

last
Fin de la séquence à rechercher.

Notes

Si le modèle [pat_first, pat_last) de recherche est vide, retourne make_pair(first, first). Si le modèle de recherche est introuvable, retourne make_pair(last, last). Sinon, retourne une paire d’itérateurs au début et à la fin d’une séquence dans [first, last) ce qui est égal au [pat_first, pat_last) prédicat prédicat.

Cette classe est nouvelle en C++17.

Voir aussi

<functional>
algorithm, fonctions
classe boyer_moore_horspool_searcher
std ::search