std::default_searcher
| Definiert in der Header-Datei <functional> |
||
| template< class ForwardIt, class BinaryPredicate = std::equal_to<> > class default_searcher; |
(seit C++17) | |
Eine Klasse, die mit der Searcher-Überladung von std::search verwendet werden kann und die Suchoperation an std::search der Standardbibliothek vor C++17 delegiert.
std::default_searcher ist CopyConstructible und CopyAssignable.
Inhalt |
[bearbeiten] Memberfunktionen
std::default_searcher::default_searcher
default_searcher( ForwardIt pat_first, ForwardIt pat_last, |
(seit C++17) (constexpr seit C++20) |
|
Konstruiert einen std::default_searcher, indem Kopien von pat_first, pat_last und pred gespeichert werden.
Parameter
| pat_first, pat_last | - | ein Iteratorpaar, das die zu suchende Zeichenkette bezeichnet |
| pred | - | ein aufrufbares Objekt, das zur Bestimmung der Gleichheit verwendet wird |
Ausnahmen
Alle Ausnahmen, die von den Konstruktoren von BinaryPredicate oder ForwardIt geworfen werden.
std::default_searcher::operator()
template< class ForwardIt2 > std::pair<ForwardIt2, ForwardIt2> |
(seit C++17) (constexpr seit C++20) |
|
Die Memberfunktion, die von der Searcher-Überladung von std::search aufgerufen wird, um eine Suche mit diesem Sucher durchzuführen.
Gibt ein Iteratorpaar i, j zurück, wobei i std::search(first, last, pat_first, pat_last, pred) und j std::next(i, std::distance(pat_first, pat_last)) ist, es sei denn, std::search gab last zurück (kein Treffer), in diesem Fall ist j ebenfalls gleich last.
Parameter
| first, last | - | ein Iteratorpaar, das die zu untersuchende Zeichenkette bezeichnet |
Rückgabewert
Ein Iteratorpaar zum ersten und einen über den letzten Positionen in [first, last), wo eine Teilsequenz, die gleich [pat_first, pat_last) wie durch pred definiert ist, gefunden wird, oder andernfalls ein Paar von Kopien von last.
[bearbeiten] Beispiel
#include <algorithm> #include <functional> #include <iomanip> #include <iostream> #include <string_view> int main() { constexpr std::string_view in = "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"}; auto it = std::search(in.begin(), in.end(), std::default_searcher( needle.begin(), needle.end())); if (it != in.end()) std::cout << "The string " << std::quoted(needle) << " found at offset " << it - in.begin() << '\n'; else std::cout << "The string " << std::quoted(needle) << " not found\n"; }
Ausgabe
The string "pisci" found at offset 43
[bearbeiten] Siehe auch
| Sucht nach dem ersten Vorkommen eines Elementbereichs (Funktionstempelat) | |
| (C++17) |
Implementierung des Boyer-Moore-Suchalgorithmus (Klassen-Template) |
| Implementierung des Boyer-Moore-Horspool-Suchalgorithmus (Klassen-Template) |