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;
};
成员
成员 | 说明 |
---|---|
构造函数 | |
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
要搜索的序列的结尾。
hf
一个可调用对象,用于对序列元素进行哈希处理。
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)
。 否则,将一对迭代器返回到根据谓词 pred 等于 [pat_first, pat_last)
的 [first, last)
中序列的开头和结尾。
此类是 C++17 中的新增类。
另请参阅
<functional>
algorithm 函数
boyer_moore_horspool_searcher 类
std::search