Sdílet prostřednictvím


boyer_moore_searcher – třída

boyer_moore_searcher Třída je typ objektu funkce, který používá Boyer-Moore algoritmus k vyhledání sekvence zadané v konstruktoru objektu. Hledání se provádí v jiné sekvenci zadané operátoru volání funkce objektu. Tato třída se předává jako parametr jednomu z přetížení std::search.

Syntaxe

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

Členové

Člen Popis
Konstruktor
boyer_moore_searcher Vytvoří instanci vyhledávacího modulu.
Operátory
operator() Vyvolá operaci v sekvenci.

konstruktor boyer_moore_searcher

boyer_moore_searcher Vytvoří objekt funkce pomocí sekvence k vyhledání, objektu funkce hash a predikátu rovnosti.

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

Parametry

pat_first
Počáteční prvek sekvence, který se má vyhledat.

pat_last
Konec sekvence, která se má vyhledat.

Hf
Volatelný objekt, který se používá k hash sekvencování prvků.

před
Volitelný predikát porovnání rovnosti pro sekvenční prvky. Pokud není zadán typ porovnání rovnosti, je výchozí std::equal_tohodnota .

Poznámky

Vyvolá výjimku vyvolanou konstruktorem kopírování typu BinaryPredicate, Hash nebo RandomAccessIterator nebo operátor volání BinaryPredicate nebo Hash.

Tato třída je v jazyce C++17 nová.

operator()

Operátor volání objektu funkce. Vyhledá v posloupnosti argumentů sekvenci [first, last) zadanou konstruktorem.

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

Parametry

první
Počáteční prvek sekvence, která se má prohledávat.

poslední
Konec sekvence, ve které se má hledat.

Poznámky

Pokud je hledaný vzor [pat_first, pat_last) prázdný, vrátí hodnotu make_pair(first, first). Pokud se vyhledávací vzor nenajde, vrátí hodnotu make_pair(last, last). V opačném případě vrátí dvojici iterátorů na začátek a konec sekvence, [first, last) která se rovná [pat_first, pat_last) podle predikátu predikátu.

Tato třída je v jazyce C++17 nová.

Viz také

<funkční>
funkce algoritmů
boyer_moore_horspool_searcher – třída
std::search