Hat die C++ - Standardbibliothek und/oder Boost etwas Ähnliches wie die filter
-Funktion in funktionalen Sprachen?"Filter" Funktion höherer Ordnung in C++
Die nächste Funktion, die ich finden konnte, war std::remove_copy_if
, aber es scheint das Gegenteil von dem zu tun, was ich will. Hat boost::lambda
irgendeine Funktion, um eine negierte Version meines Prädikats zu bekommen (ähnlich not
in Haskell)? Ich könnte mein Prädikat negieren und es dann mit std::remove_copy_if
verwenden.
Bitte beachten Sie, dass ich nicht frage, wie man filter
Funktion in C++ schreibt; Ich frage nur, ob die Standardbibliothek und/oder Boost bereits eine solche Funktion bereitstellen.
Vielen Dank im Voraus.
Wie ist 'std :: remove_copy_if()' Gegenteil von dem, was Sie wollen? Was ist das Gegenteil des Gegenteils? Wenn Sie nur Elemente an Ort und Stelle entfernen möchten, verwenden Sie Entfernen/Löschen idiom: 'container.rese (std :: entfernen_if (container.begin(), container.end(), pred()), container.end()); ' – wilx
@wilx: Ich möchte, dass die Elemente, die das Prädikat erfüllen, beibehalten und andere entfernt werden. – missingfaktor