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
.