Compartir a través de


Clase boyer_moore_searcher

La clase boyer_moore_searcher es un tipo de objeto de función que usa el algoritmo Boyer-Moore para buscar una secuencia especificada en el constructor del objeto. La búsqueda se realiza dentro de otra secuencia proporcionada al operador de llamada de función del objeto. Esta clase se pasa como parámetro a una de las sobrecargas de std::search.

Sintaxis

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

Miembros

Miembro Descripción
Constructor
boyer_moore_searcher Construye una instancia del buscador.
Operadores
operator() Invoca la operación en la secuencia.

boyer_moore_searcher constructor

Construye un objeto de función boyer_moore_searcher mediante la secuencia para buscar, un objeto de función hash y un predicado de igualdad.

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

Parámetros

pat_first
Elemento inicial de la secuencia que se va a buscar.

pat_last
Final de la secuencia que se va a buscar.

hf
Objeto al que se puede llamar, que se usa para aplicar un hash a los elementos de la secuencia.

pred
Predicado de comparación de igualdad opcional para los elementos de la secuencia. Si no se especifica un tipo de comparación de igualdad, el valor predeterminado es std::equal_to.

Comentarios

Produce cualquier excepción generada por el constructor de copia de los tipos BinaryPredicate, Hash o RandomAccessIterator, o el operador de llamada de BinaryPredicate o Hash.

Esta clase es nueva en C++17.

operator()

Operador de llamada del objeto de función. Busca en la secuencia de argumentos el valor [first, last) de la secuencia especificada para el constructor.

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

Parámetros

first
Elemento inicial de la secuencia que se va a buscar en el interior.

last
Final de la secuencia que se va a buscar en el interior.

Comentarios

Si el patrón de búsqueda [pat_first, pat_last) está vacío, devuelve make_pair(first, first). Si el patrón de búsqueda no se encuentra, devuelve make_pair(last, last). De lo contrario, devuelve un par de iteradores al principio y al final de una secuencia en [first, last) que es igual a [pat_first, pat_last) según el predicado pred.

Esta clase es nueva en C++17.

Consulte también

<functional>
Funciones algorithm
boyer_moore_horspool_searcher class
std::search