std::experimental::default_searcher, std::experimental::make_default_searcher
定義於標頭檔案 <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, |
||
透過儲存 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( |
(庫基礎 TS) | |
使用模板引數推導構造 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
[編輯] 參閱
搜尋一個範圍的元素首次出現的位置 (函式模板) |