класс 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;
};
Участники
Элемент | Description |
---|---|
Конструктор | |
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
Вызываемый объект, используемый для хэшации элементов последовательности.
Пред
Необязательный предикат сравнения равенства для элементов последовательности. Если тип сравнения равенства не указан, используется 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)
. В противном случае возвращает пару итераторов в начало и конец последовательности в [first, last)
соответствии с предикатом.[pat_first, pat_last)
Этот класс является новым в C++17.
См. также
<functional>
функции алгоритмов
класс boyer_moore_horspool_searcher
std::search