Compartilhar via


Classe boyer_moore_searcher

A classe boyer_moore_searcher é um tipo de objeto de função que usa o algoritmo Boyer-Moore para pesquisar uma sequência especificada no construtor do objeto. A pesquisa é feita dentro de outra sequência fornecida ao operador de chamada de função do objeto. Essa classe é passada como um parâmetro para uma das sobrecargas de std::search.

Sintaxe

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

Membros

Membro Descrição
Construtor
boyer_moore_searcher Constrói uma instância do searcher.
Operadores
operador() Invoca a operação na sequência.

construtor boyer_moore_searcher

Constrói um objeto de função boyer_moore_searcher usando a sequência para pesquisa, um objeto de função de hash e um predicado de igualdade.

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

Parâmetros

pat_first
O elemento inicial da sequência a ser pesquisada.

pat_last
O fim da sequência a ser pesquisada.

hf
Um objeto que pode ser chamado, usado para hash dos elementos de sequência.

pred
O predicado de comparação de igualdade opcional para elementos de sequência. Se um tipo de comparação de igualdade não for especificado, o padrão será std::equal_to.

Comentários

Gera qualquer exceção gerada pelo construtor de cópia dos tipos BinaryPredicate, Hash ou RandomAccessIterator ou o operador de chamada binaryPredicate ou Hash.

Essa classe é nova no C++17.

operador()

O operador de chamada do objeto de função. Pesquisa na sequência de argumentos [first, last) a sequência especificada para o construtor.

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

Parâmetros

first
O elemento inicial da sequência dentro da qual haverá a pesquisa.

last
O fim da sequência dentro da qual haverá a pesquisa.

Comentários

Se o padrão de pesquisa [pat_first, pat_last) estiver vazio, retornará make_pair(first, first). Se o padrão de pesquisa não for encontrado, retornará make_pair(last, last). Caso contrário, retorna um par de iteradores para o início e o fim de uma sequência em [first, last) que é igual a [pat_first, pat_last) de acordo com o predicado pred.

Essa classe é nova no C++17.

Confira também

<functional>
Funções algorithm
boyer_moore_horspool_searcher class
std::search