classe boyer_moore_searcher

La boyer_moore_searcher classe è un tipo di oggetto funzione che usa l'algoritmo Boyer-Moore per cercare una sequenza specificata nel costruttore dell'oggetto. La ricerca viene eseguita all'interno di un'altra sequenza fornita all'operatore di chiamata di funzione dell'oggetto. Questa classe viene passata come parametro a uno degli overload di std::search.

Sintassi

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

Membri

Membro Descrizione
Costruttore
boyer_moore_searcher Costruisce un'istanza del searcher.
Operatori
operator() Richiama l'operazione sulla sequenza.

Costruttore boyer_moore_searcher

Costruisce un boyer_moore_searcher oggetto funzione usando la sequenza per cercare, un oggetto funzione hash e un predicato di uguaglianza.

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

Parametri

pat_first
Elemento iniziale della sequenza da cercare.

pat_last
Fine della sequenza da cercare.

Hf
Oggetto chiamabile utilizzato per eseguire l'hashing degli elementi della sequenza.

Pred
Predicato di confronto di uguaglianza facoltativo per gli elementi della sequenza. Se non viene specificato un tipo di confronto di uguaglianza, il valore predefinito è std::equal_to.

Osservazioni:

Genera qualsiasi eccezione generata dal costruttore di copia dei tipi BinaryPredicate, Hash o RandomAccessIterator oppure dall'operatore di chiamata di BinaryPredicate o Hash.

Questa classe è una novità di C++17.

operator()

Operatore di chiamata dell'oggetto funzione. Cerca nella sequenza di argomenti la sequenza [first, last) specificata nel costruttore.

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

Parametri

first
Elemento iniziale della sequenza in cui eseguire la ricerca.

last
Fine della sequenza in cui eseguire la ricerca.

Osservazioni:

Se il criterio [pat_first, pat_last) di ricerca è vuoto, restituisce make_pair(first, first). Se il criterio di ricerca non viene trovato, restituisce make_pair(last, last). In caso contrario, restituisce una coppia di iteratori all'inizio e alla fine di una sequenza in [first, last) uguale a [pat_first, pat_last) in base al predicato pred.

Questa classe è una novità di C++17.

Vedi anche

<functional>
Funzioni algorithm
Classe boyer_moore_horspool_searcher
std::search