std::experimental:: default_searcher, std::experimental:: make_default_searcher
|
定义于头文件
<experimental/functional>
|
||
|
template
<
class
ForwardIterator1,
class
BinaryPredicate
=
std::
equal_to
<>
>
class default_searcher ; |
(库基础技术规范) | |
一个适用于与 std::experimental::search 配合使用的类,该类将搜索操作委托给标准库的 std::search 。
default_searcher
满足
可复制构造
与
可复制赋值
要求。
目录 |
成员函数
std::experimental::default_searcher:: default_searcher
|
default_searcher
(
ForwardIterator pat_first,
ForwardIterator pat_last,
|
||
通过存储
pat_first
、
pat_last
和
pred
的副本来构造一个
default_searcher
。
参数
| 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
>
|
(C++17 起) | |
由 std::experimental::search 调用的成员函数,用于使用此搜索器执行搜索。
|
等价于 std:: search ( first, last, pat_first, pat_last, pred ) ; 。 |
(C++17 前) |
|
返回一对迭代器
|
(C++17 前) |
参数
| first, last | - | 指定待搜索字符串的一对迭代器 |
返回值
|
指向
|
(C++17 前) |
|
指向
|
(C++17 起) |
辅助函数
|
template
<
class
ForwardIterator,
class
BinaryPredicate
=
std::
equal_to
<>
>
default_searcher
<
ForwardIterator, BinaryPredicate
>
make_default_searcher
(
|
(库基础技术规范) | |
用于构造
std::experimental::default_searcher
的辅助函数,采用模板实参推导。等效于
return
default_searcher
<
ForwardIterator, BinaryPredicate
>
(
pat_first, pat_last, pred
)
;
参数
| pat_first, pat_last | - | 用于指定待搜索字符串的一对迭代器 |
| pred | - | 用于判定相等性的可调用对象 |
返回值
一个使用参数
pat_first
、
pat_last
、
pred
构造的
default_searcher
。
示例
#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
参见
|
在元素范围中搜索首个匹配序列
(函数模板) |