kennen:lib:search
search()
#include
<algorithm>
For search (For first, For last, For2 first2, For2 last2) For search (For first, For last, For2 first2, For2 last2, Binary pred) For search (Exec pol, For first, For last, For2 first2, For2 last2) For search (Exec pol, For first, For last, For2 first2, For2 last2, Binary pred) Range ranges::search (Range1 r1, Range2 r2, Binary pred = {}, Proj1 proj1 = {}, Proj2 proj2 = {}) Range ranges::search (For first, For last, For2 first2, For2 last2, Binary pred = {}, Proj1 proj1 = {}, Proj2 proj2 = {}) For search (For first, For last, For2 first2, For2 last2, Searcher searcher) // C++17
Sucht den Anfang eines Teilbereiches aus [first,last),
der mit [first2,last2) übereinstimmt, das Prädikat pred(proj1(x),proj2(y))
erfüllt bzw.
dem Muster eines searcher-Objekts entspricht.
Parameter
first | Anfang des Bereiches |
last | Ende des Bereiches |
first2 | Anfang des Vorgabebereiches |
last2 | Ende des Vorgabebereiches |
pred | zweistelliges Prädikat (Vorgabe = equal_to ) |
proj1 , proj2 | einstelliger Funktor (Vorgabe = std::identity ) |
pol | parallele Ausführungsart |
searcher | Sucher-Objekt |
Ergebnis
Rückgabewert: Iterator auf den Anfang des gefundenen Bereiches oder last
.
Siehe auch
Beispiel
- search.cpp
#include <algorithm> #include <iostream> #include <string> int main() { std::string s = "Hallo Welt"; std::string sequence = "ALL"; std::cout << s << '\n'; auto pos = std::search(begin(s), end(s), begin(sequence), end(sequence), [](char a, char b) { return std::tolower(a) == std::tolower(b); } // ignore case ); std::cout << " " << std::string(pos, end(s)) << '\n' << " " << sequence << '\n'; }
Sucher
C++17 definiert in <functional> 3 Sucher-Objekte:
default_searcher
, der den naiven Suchalgorithmus verwendet, sowieboyer_moore_searcher
undboyer_horspool_moore_searcher
, welche die gleichnamigen Algorithmen implementieren.
Die Angabe eines zweistelligen Prädikats anstelle von =
ist als drittes Argument möglich.
- searcher.cpp
#include <algorithm> #include <functional> #include <iostream> #include <string> int main() { std::string s = "Hallo Welt"; std::string sequence = "all"; std::cout << s << '\n'; auto pos = std::search(begin(s), end(s), std::boyer_moore_searcher(begin(sequence), end(sequence)) ); std::cout << " " << std::string(pos, end(s)) << '\n' << " " << sequence << '\n'; return 0; }
kennen/lib/search.txt · Zuletzt geändert: 2020-06-14 15:18 von 127.0.0.1