boyer_moore_horspool_searcher Klasse

Die boyer_moore_horspool_searcher Klasse ist ein Funktionsobjekttyp, der den Boyer-Moore-Horspool-Algorithmus verwendet, um nach einer sequenz zu suchen, die im Konstruktor des Objekts angegeben ist. Die Suche erfolgt innerhalb einer anderen Sequenz, die dem Funktionsaufrufoperator des Objekts bereitgestellt wird. Diese Klasse wird als Parameter an eine der Überladungen von std::search übergeben.

Syntax

template <
    class RandomAccessIterator,
    class Hash = hash<typename iterator_traits<RandomAccessIterator>::value_type>,
    class BinaryPredicate = equal_to<>>
class boyer_moore_horspool_searcher
{
    boyer_moore_horspool_searcher(
        RandomAccessIterator pat_first,
        RandomAccessIterator pat_last,
        Hash hf = Hash(),
        BinaryPredicate pred = BinaryPredicate());

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

Member

Member Beschreibung
Konstruktor
boyer_moore_horspool_searcher Erstellt eine Suchinstanz.
Operatoren
operator() Ruft den Vorgang für die Sequenz auf.

boyer_moore_horspool_searcher-Konstruktor

Erstellt ein boyer_moore_horspool_searcher Funktionsobjekt mithilfe der Sequenz, nach der gesucht werden soll, ein Hashfunktionsobjekt und ein Gleichheits-Prädikat.

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

Parameter

pat_first
Das anfängliche Element der Sequenz, nach der gesucht werden soll.

pat_last
Das Ende der Sequenz, nach der gesucht werden soll.

Hf
Ein aufrufbares Objekt, das zum Hashen der Sequenzelemente verwendet wird.

Pred
Das optionale Gleichheitsvergleichs-Prädikat für Sequenzelemente. Wenn kein Gleichheitsvergleichstyp angegeben ist, ist std::equal_todie Standardeinstellung .

Hinweise

Löst eine Ausnahme aus, die vom Kopierkonstruktor der Typen BinaryPredicate, Hash oder RandomAccessIterator oder den Aufrufoperator von BinaryPredicate oder Hash ausgelöst wird.

Diese Klasse ist neu in C++17.

Operator()

Der Aufrufoperator des Funktionsobjekts. Sucht innerhalb der Argumentsequenz [first, last) nach der sequenz, die für den Konstruktor angegeben ist.

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

Parameter

first
Das anfängliche Element der Sequenz, in der gesucht werden soll.

last
Das Ende der Sequenz, in der gesucht werden soll.

Hinweise

Wenn das Suchmuster [pat_first, pat_last) leer ist, wird zurückgegeben make_pair(first, first). Wenn das Suchmuster nicht gefunden wird, wird zurückgegeben make_pair(last, last). Gibt andernfalls ein Iteratorpaar an den Anfang und das Ende einer Sequenz zurück [first, last)[pat_first, pat_last) , die dem Prädikat entspricht.

Diese Klasse ist neu in C++17.

Siehe auch

<functional>
Algorithmusfunktionen
boyer_moore_searcher Klasse
std::search