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: 2020-06-14 14:38 von 127.0.0.1