Compartir vía


Clase default_searcher

default_searcher un tipo de objeto de función para las operaciones que buscan 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. default_searcher invoca std::search para realizar la búsqueda.

Sintaxis

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

Miembros

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

Constructor default_searcher

Construye un objeto de función default_searcher mediante la secuencia que se va a buscar y un predicado de igualdad.

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
Elemento inicial de la secuencia que se va a buscar.

pat_last
Final de la secuencia que se va a buscar.

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

Esta clase es nueva en C++17. C++20 convirtió el constructor en constexpr.

operator()

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

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

Devuelve un par de iteradores. El iterador inicial i es el resultado efectivo de:

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

El segundo iterador del par es last si i* es last. De lo contrario, es el resultado efectivo de:

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

Esta clase es nueva en C++17. C++20 convirtió el operador de llamada en constexpr.

Consulte también

<functional>
Funciones algorithm
std::search