default_searcher 类
default_searcher
是操作的函数对象类型,这些操作搜索对象构造函数中指定的序列。 搜索在提供给对象的函数调用运算符的另一个序列内完成。 default_searcher
调用 std::search 来执行搜索。
语法
template <class ForwardIterator, class BinaryPredicate = equal_to<>>
class default_searcher
{
default_searcher(
ForwardIterator pat_first,
ForwardIterator pat_last,
BinaryPredicate pred = BinaryPredicate());
template <class ForwardIterator2>
pair<ForwardIterator2, ForwardIterator2> operator()(
ForwardIterator2 first,
ForwardIterator2 last) const;
};
成员
成员 | 说明 |
---|---|
构造函数 | |
default_searcher | 构造搜索器实例。 |
运算符 | |
operator() | 在序列上调用操作。 |
default_searcher 构造函数
通过使用要搜索的序列和相等谓词来构造 default_searcher
函数对象。
default_searcher( // C++17
ForwardIterator pat_first,
ForwardIterator pat_last,
BinaryPredicate pred = BinaryPredicate());
constexpr default_searcher( // C++20
ForwardIterator pat_first,
ForwardIterator pat_last,
BinaryPredicate pred = BinaryPredicate());
参数
pat_first
要搜索的序列的初始元素。
pat_last
要搜索的序列的结尾。
pred
序列元素的可选相等比较谓词。 如果未指定相等比较类型,则默认为 std::equal_to
。
注解
引发由 BinaryPredicate 或 ForwardIterator 类型的复制构造函数引发的任何异常。
此类是 C++17 中的新增类。 C++20 创建构造函数 constexpr
。
operator()
函数运算符的调用运算符。 在参数序列 [first, last)
中搜索指定给构造函数的序列。
template <class ForwardIterator2> // C++17
pair<ForwardIterator2, ForwardIterator2> operator()(
ForwardIterator2 first,
ForwardIterator2 last) const;
template <class ForwardIterator2> // C++20
constexpr pair<ForwardIterator2, ForwardIterator2> operator()(
ForwardIterator2 first,
ForwardIterator2 last) const;
参数
first
要在其中搜索的序列的初始元素。
last
要在其中搜索的序列的结尾。
备注
返回一对迭代器。 初始迭代器 i 是以下项的有效结果:
std::search( first, last, pat_first, pat_last, pred )
。
如果 i* 是 last,则对的第二个迭代器是 last。 否则,它是以下项的有效结果:
std::next( i, std::distance( pat_first, pat_last ))
。
此类是 C++17 中的新增类。 C++20 创建调用运算符 constexpr
。