¿La biblioteca estándar de C++ y/o Boost tienen algo similar a la función filter
que se encuentra en los lenguajes funcionales?"filtro" función de orden superior en C++
La función más cercana que pude encontrar fue std::remove_copy_if
pero parece estar haciendo lo contrario de lo que quiero. ¿Tiene boost::lambda
alguna función para obtener una versión negada de mi predicado (similar a not
en Haskell)? Podría negar mi predicado y usarlo con std::remove_copy_if
.
Tenga en cuenta que no estoy preguntando cómo escribir la función filter
en C++; Solo estoy preguntando si la biblioteca estándar y/o Boost ya proporcionan esa función.
Gracias de antemano.
¿Cómo es 'std :: remove_copy_if()' al contrario de lo que quieres? ¿Qué es lo opuesto a lo opuesto? Si solo quiere eliminar los elementos en su lugar, use eliminar/borrar idioma: 'container.erase (std :: remove_if (container.begin(), container.end(), pred()), container.end()); ' – wilx
@wilx: Quiero que los elementos que satisfagan el predicado se retengan y otros se eliminen. – missingfaktor