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

另请参阅

<functional>
algorithm 函数
std::search