GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::boyer_moore_searcher(3) C++ Standard Libary std::boyer_moore_searcher(3)

std::boyer_moore_searcher - std::boyer_moore_searcher


Defined in header <functional>
template< class RandomIt1,


class Hash = std::hash<typename
std::iterator_traits<RandomIt1>::value_type>, (since C++17)
class BinaryPredicate = std::equal_to<> >


class boyer_moore_searcher;


A searcher suitable for use with the Searcher overload of std::search that
implements the Boyer-Moore string searching algorithm.


boyer_moore_searcher is CopyConstructible and CopyAssignable.


RandomIt1 must meet the requirements of LegacyRandomAccessIterator.

std::boyer_moore_searcher::boyer_moore_searcher


boyer_moore_searcher( RandomIt1 pat_first,


RandomIt1 pat_last,
Hash hf = Hash(),


BinaryPredicate pred = BinaryPredicate());


Constructs a boyer_moore_searcher by storing copies of pat_first, pat_last, hf, and
pred, setting up any necessary internal data structures.


The value type of RandomIt1 must be DefaultConstructible, CopyConstructible and
CopyAssignable.


For any two values A and B of the type std::iterator_traits<RandomIt1>::value_type,
if pred(A, B) == true, then hf(A) == hf(B) shall be true.


pat_first, pat_last - a pair of iterators designating the string to be searched for
hf - a callable object used to hash the elements of the string
pred - a callable object used to determine equality


Any exceptions thrown by


* the copy constructor of RandomIt1;
* the default constructor, copy constructor, and copy assignment operator of the
value type of RandomIt1; or
* the copy constructor and function call operator of BinaryPredicate or Hash.


May also throw std::bad_alloc if additional memory required for internal data
structures cannot be allocated.

std::boyer_moore_searcher::operator()


template< class RandomIt2 >
std::pair<RandomIt2,RandomIt2> operator()( RandomIt2 first, RandomIt2 (since C++17)
last ) const;


The member function called by the Searcher overload of std::search to perform a
search with this searcher. RandomIt2 must meet the requirements of
LegacyRandomAccessIterator.


RandomIt1 and RandomIt2 must have the same value type.


first, last - a pair of iterators designating the string to be examined


If the pattern ([pat_first, pat_last)) is empty, returns std::make_pair(first,
first).


Otherwise, returns a pair of iterators to the first and one past last positions in
[first, last) where a subsequence that compares equal to [pat_first, pat_last) as
defined by pred is located, or std::make_pair(last, last) otherwise.


Feature-test macro: __cpp_lib_boyer_moore_searcher

// Run this code


#include <iomanip>
#include <iostream>
#include <algorithm>
#include <functional>
#include <string_view>


int main()
{
constexpr std::string_view haystack =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed "
"do eiusmod tempor incididunt ut labore et dolore magna aliqua";


const std::string_view needle {"pisci"};


if (const auto it = std::search(haystack.begin(), haystack.end(),
std::boyer_moore_searcher(needle.begin(), needle.end()));
it != haystack.end()
) {
std::cout << "The string " << quoted(needle) << " found at offset "
<< it - haystack.begin() << '\n';
} else {
std::cout << "The string " << std::quoted(needle) << " not found\n";
}
}


The string "pisci" found at offset 43


search searches for a range of elements
(function template)
default_searcher standard C++ library search algorithm implementation
(C++17) (class template)
boyer_moore_horspool_searcher Boyer-Moore-Horspool search algorithm implementation
(C++17) (class template)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.