boyer_moore_searcher Klasse
Die boyer_moore_searcher
Klasse ist ein Funktionsobjekttyp, der den Boyer-Moore-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 RandomAccessIterator1,
class Hash = hash<typename iterator_traits<RandomAccessIterator1>::value_type>,
class BinaryPredicate = equal_to<>>
class boyer_moore_searcher
{
boyer_moore_searcher(
RandomAccessIterator1 pat_first,
RandomAccessIterator1 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_searcher | Erstellt eine Suchinstanz. |
Operatoren | |
operator() | Ruft den Vorgang für die Sequenz auf. |
boyer_moore_searcher-Konstruktor
Erstellt ein boyer_moore_searcher
Funktionsobjekt mithilfe der Sequenz, nach der gesucht werden soll, ein Hashfunktionsobjekt und ein Gleichheits-Prädikat.
boyer_moore_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_to
die 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>
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_horspool_searcher Klasse
std::search