boyer_moore_searcher 類別

類別 boyer_moore_searcher 是函式物件類型,會使用 Boyer-Moore 演算法來搜尋物件建構函式中指定的序列。 搜尋是在提供給物件函式呼叫運算子的另一個序列內完成。 這個類別會當做參數傳遞至 std::search 其中一個多載。

語法

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 描述
建構函式
boyer_moore_searcher 建構搜尋程式實例。
運算子
operator() 叫用序列上的作業。

boyer_moore_searcher建構函式

boyer_moore_searcher使用序列來搜尋、雜湊函式物件和相等述詞,以建構函式物件。

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

參數

pat_first
要搜尋之序列的初始專案。

pat_last
要搜尋的序列結尾。

高頻
可呼叫的物件,用來雜湊時序專案。

Pred
序列元素的選擇性相等比較述詞。 如果未指定相等比較類型,則預設值為 std::equal_to

備註

擲回 BinaryPredicate、Hash 或 RandomAccessIterator 類型的複製建構 函式所擲回的任何例外狀況,或 BinaryPredicate Hash 呼叫運算子。

此類別是 C++17 的新功能。

operator()

函式物件的呼叫運算子。 在引數序列 [first, last) 中搜尋建構函式所指定序列。

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

參數

first
要在其中搜尋之序列的初始專案。

last
要在其中搜尋之序列的結尾。

備註

如果搜尋模式 [pat_first, pat_last) 是空的,則傳 make_pair(first, first) 回 。 如果找不到搜尋模式,則會傳 make_pair(last, last) 回 。 否則,會根據述詞述 ,將一對反覆運算器傳回序列的 [first, last)[pat_first, pat_last) 開頭和結尾。

此類別是 C++17 的新功能。

另請參閱

<functional>
algorithm 函式
boyer_moore_horspool_searcher 類別
std::search