Condividi tramite


Classe default_searcher

Un default_searcher è un tipo di oggetto funzione per le operazioni che cercano una sequenza specificata nel costruttore dell'oggetto. La ricerca viene eseguita all'interno di un'altra sequenza fornita all'operatore di chiamata di funzione dell'oggetto. default_searcher richiama std::search per eseguire la ricerca.

Sintassi

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

Membri

Membro Descrizione
Costruttore
default_searcher Costruisce un'istanza del searcher.
Operatori
operator() Richiama l'operazione sulla sequenza.

Costruttore default_searcher

Costruisce un default_searcher oggetto funzione usando la sequenza per cercare e un predicato di uguaglianza.

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());

Parametri

pat_first
Elemento iniziale della sequenza da cercare.

pat_last
Fine della sequenza da cercare.

Pred
Predicato di confronto di uguaglianza facoltativo per gli elementi della sequenza. Se non viene specificato un tipo di confronto di uguaglianza, il valore predefinito è std::equal_to.

Osservazioni:

Genera qualsiasi eccezione generata dal costruttore di copia dei tipi BinaryPredicate o ForwardIterator .

Questa classe è una novità di C++17. C++20 ha reso il costruttore constexpr.

operator()

Operatore di chiamata dell'operatore function. Cerca nella sequenza di argomenti la sequenza [first, last) specificata nel costruttore.

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;

Parametri

first
Elemento iniziale della sequenza in cui eseguire la ricerca.

last
Fine della sequenza in cui eseguire la ricerca.

Osservazioni:

Restituisce una coppia di iteratori. L'iteratore iniziale i è il risultato effettivo di:

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

Il secondo iteratore della coppia è l'ultimo se i* è l'ultimo. In caso contrario, è il risultato effettivo di:

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

Questa classe è una novità di C++17. C++20 ha eseguito l'operatore constexprdi chiamata .

Vedi anche

<functional>
Funzioni algorithm
std::search