std::experimental::search
Von cppreference.com
< cpp | experimental
| Definiert im Header <experimental/algorithm> |
||
| template< class ForwardIterator, class Searcher > ForwardIterator search( ForwardIterator first, ForwardIterator last, |
(library fundamentals TS) | |
Durchsucht die Sequenz [first, last) nach dem Muster, das im Konstruktor von searcher spezifiziert ist.
|
Führt effektiv searcher(first, last) aus. |
(bis C++17) |
|
Führt effektiv searcher(first, last).first aus. |
(seit C++17) |
Searcher muss nicht CopyConstructible sein.
Die Standardbibliothek bietet die folgenden Sucher
| Implementierung des standardmäßigen C++-Bibliotheks-Suchalgorithmus (Klassentemplate) | |
| Implementierung des Boyer-Moore-Suchalgorithmus (Klassentemplate) | |
| Implementierung des Boyer-Moore-Horspool-Suchalgorithmus (Klassentemplate) |
Inhalt |
[bearbeiten] Parameter
| |||
[bearbeiten] Rückgabewert
Gibt das Ergebnis von searcher.operator() zurück, d.h. einen Iterator auf die Stelle, an der der Teilstring gefunden wurde, oder eine Kopie von last, falls er nicht gefunden wurde.
[bearbeiten] Komplexität
Abhängig vom Sucher.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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_boyer_moore_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"; }
Ausgabe
The string pisci found at offset 43
[bearbeiten] Siehe auch
| Sucht nach dem ersten Vorkommen eines Elementbereichs (Funktionstempelat) |