namespace cpp

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


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 (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(x,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
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, sowie
  • boyer_moore_searcher und
  • boyer_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: 2019-11-20 14:26 von rrichter