Partilhar via


Classe default_searcher

Um default_searcher é um tipo de objeto de função para operações que pesquisam 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. O default_searcher invoca std::search para executar a pesquisa.

Sintaxe

template <class ForwardIterator, class BinaryPredicate = equal_to<>>
class default_searcher
{
    default_searcher(
        ForwardIterator pat_first,
        ForwardIterator pat_last,
        BinaryPredicate pred = BinaryPredicate());

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

Membros

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

Construtor default_searcher

Constrói um objeto de função default_searcher usando a sequência para pesquisar um predicado de igualdade.

default_searcher(                   // C++17
    ForwardIterator pat_first,
    ForwardIterator pat_last,
    BinaryPredicate pred = BinaryPredicate());

constexpr default_searcher(         // C++20
    ForwardIterator pat_first,
    ForwardIterator pat_last,
    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.

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 ou ForwardIterator.

Essa classe é nova no C++17. O C++20 fez o construtor constexpr.

operador()

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

template <class ForwardIterator2>   // C++17
pair<ForwardIterator2, ForwardIterator2> operator()(
    ForwardIterator2 first,
    ForwardIterator2 last) const;

template <class ForwardIterator2>   // C++20
constexpr pair<ForwardIterator2, ForwardIterator2> operator()(
    ForwardIterator2 first,
    ForwardIterator2 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

Retorna um par de iteradores. O iterador inicial i é o resultado efetivo de:

std::search( first, last, pat_first, pat_last, pred ).

O segundo iterador do par é o last se i* for last. Caso contrário, será o resultado efetivo de:

std::next( i, std::distance( pat_first, pat_last )).

Essa classe é nova no C++17. O C++20 fez o operador de chamada constexpr.

Confira também

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