Класс 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;
};

Участники

Элемент Description
Конструктор
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* является последним. В противном случае это эффективный результат:

std::next( i, std::distance( pat_first, pat_last )).

Этот класс является новым в C++17. C++20 сделал оператор constexprвызова.

См. также

<functional>
функции алгоритмов
std::search