Namespaces
Variants

std::experimental:: default_searcher, std::experimental:: make_default_searcher

From cppreference.net
Определено в заголовочном файле <experimental/functional>
template < class ForwardIterator1, class BinaryPredicate = std:: equal_to <> >
class default_searcher ;
(TS библиотечных основ)

Класс, подходящий для использования с std::experimental::search , который делегирует операцию поиска стандартной библиотечной функции std::search .

default_searcher является CopyConstructible и CopyAssignable .

Содержание

Функции-члены

std::experimental::default_searcher:: default_searcher

default_searcher ( ForwardIterator pat_first,

ForwardIterator pat_last,

BinaryPredicate pred = BinaryPredicate ( ) ) ;

Создает объект default_searcher , сохраняя копии pat_first , pat_last и pred .

Параметры

pat_first, pat_last - пара итераторов, определяющая строку для поиска
pred - вызываемый объект, используемый для определения равенства

Исключения

Любые исключения, выброшенные конструкторами копирования BinaryPredicate или ForwardIterator .

std::experimental::default_searcher:: operator()

template < class ForwardIterator2 >
ForwardIterator2 operator ( ) ( ForwardIterator2 first, ForwardIterator2 last ) const ;
(до C++17)
template < class ForwardIterator2 >

std:: pair < ForwardIterator2, ForwardIterator2 >

operator ( ) ( ForwardIterator2 first, ForwardIterator2 last ) const ;
(начиная с C++17)

Функция-член, вызываемая std::experimental::search для выполнения поиска с использованием данного поискового объекта.

Эквивалентно std:: search ( first, last, pat_first, pat_last, pred ) ; .

(до C++17)

Возвращает пару итераторов i, j , где i равен std:: search ( first, last, pat_first, pat_last, pred ) , а j равен std:: next ( i, std:: distance ( pat_first, pat_last ) ) , если только std::search не вернул last (совпадение не найдено), в этом случае j также равен last .

(до C++17)

Параметры

first, last - пара итераторов, определяющая строку для проверки

Возвращаемое значение

Итератор на первую позицию в [ first , last ) , где находится подпоследовательность, равная [ pat_first , pat_last ) , как определено pred , или копия last в противном случае.

(до C++17)

Пара итераторов на первую и следующую за последней позиции в [ first , last ) , где находится подпоследовательность, равная [ pat_first , pat_last ) , как определено pred , или пара копий last в противном случае.

(начиная с C++17)

Вспомогательные функции

template < class ForwardIterator, class BinaryPredicate = std:: equal_to <> >

default_searcher < ForwardIterator, BinaryPredicate > make_default_searcher (
ForwardIterator pat_first,
ForwardIterator pat_last,

BinaryPredicate pred = BinaryPredicate ( ) ) ;
(библиотека fundamentals TS)

Вспомогательная функция, которая создает std::experimental::default_searcher с использованием вывода шаблонных аргументов. Эквивалентно return default_searcher < ForwardIterator, BinaryPredicate > ( pat_first, pat_last, pred ) ;

Параметры

pat_first, pat_last - пара итераторов, определяющая строку для поиска
pred - вызываемый объект, используемый для определения равенства

Возвращаемое значение

Объект default_searcher , созданный с аргументами pat_first , pat_last , pred .

Пример

#include <experimental/algorithm>
#include <experimental/functional>
#include <iostream>
#include <string>
int main()
{
    std::string in = "Lorem ipsum dolor sit amet, consectetur adipiscing elit,"
                     " sed do eiusmod tempor incididunt ut labore et dolore magna aliqua";
    std::string needle = "pisci";
    auto it = std::experimental::search(in.begin(), in.end(),
                  std::experimental::make_default_searcher(
                      needle.begin(), needle.end()));
    if (it != in.end())
        std::cout << "The string " << needle << " found at offset "
                  << it - in.begin() << '\n';
    else
        std::cout << "The string " << needle << " not found\n";
}

Вывод:

The string pisci found at offset 43

Смотрите также

выполняет поиск первого вхождения диапазона элементов
(шаблон функции)