kennen:lib:find_end
Inhaltsverzeichnis
find_end()
#include <algorithm>
For find_end (For first, For last, For2 first2, For2 last2) For find_end (For first, For last, For2 first2, For2 last2, Binary pred) For find_end (Exec pol, For first, For last, For2 first2, For2 last2) For find_end (Exec pol, For first, For last, For2 first2, For2 last2, Binary pred) Range ranges::find_end (Range1 r1, Range2 r2, Binary pred = {}, Proj1 proj1, Proj2 proj2) Range ranges::find_end (For first, For last, For2 first2, For2 last2, Binary pred = {}, Proj1 proj1, Proj2 proj2)
Findet den letzten Teilbereich aus [first,last),
der mit [first2,last2) übereinstimmt bzw.
für dessen Elemente x das Prädikat pred(proj1(x), proj2(y)) mit den entsprechenden Elementen y aus [first2,last2) zutrifft.
Parameter
first | Anfang eines Bereiches |
last | Ende eines Bereiches |
first2 | Anfang der Suchmenge |
last2 | Ende der Suchmenge |
pred | zweistelliges Prädikat (Vorgabe = equal_to) |
proj1, proj2 | einstelliger Funktor (Vorgabe = std::identity) |
pol | parallele Ausführungsart |
Ergebnis
Rückgabewert: Iterator i auf erstes Element des bzw. der Teilbereich
{i, i + (i == last1 ? 0 : last2 - first2)},
bei dem *i == *j bzw. pred(proj1(*i),proj2(*j)) mit den entsprechenden Iteratoren j der Suchmenge erfüllt ist.
Wurde kein solcher Teilbereich gefunden, wird last bzw. ein leerer Bereich {last,last} geliefert.
Siehe auch
Beispiel
- find_end.cpp
#include <algorithm> #include <iostream> int main() { const char str[] = "Hallo Welt"; const char vokal[] = "aeiuo"; const char *pos = std::find_end(str, str+10, vokal, vokal+5); if (pos != end(str)) { std::cout << pos << '\n'; } }
- rg_find_end.cpp
#include <algorithm> #include <iostream> #include <string> int main() { std::string heuhaufen = "Mississippi"; std::string nadel = "is"; auto r = std::ranges::find_end(heuhaufen, nadel); auto n = r.begin() - heuhaufen.begin(); std::cout << heuhaufen << '\n' << std::string(n, ' ') << nadel << '\n'; }
kennen/lib/find_end.txt · Zuletzt geändert: von 127.0.0.1
