Tengo un contenedor y me gustaría borrar elementos basados en un predicado. Erase_if suena familiar, pero no puedo encontrarlo en C++. ¿Cuál es el nombre y dónde se define? Me gustaría usarlo con una lambda en VS10.¿Dónde está erase_if?
Respuesta
creo que desea remove_if
Probablemente se esté buscando std::remove_if
, en un patrón como:
vec.erase(std::remove_if(vec.begin(), vec.end(), predicate), vec.end());
Hay una list::remove_if
, pero no para todas las clases de contenedores. remove_if
también existe como un algoritmo, que se puede utilizar con los iteradores que puede obtener de begin()
y end()
.
Supongo que estás pensando en remove_if
que toma un predicado para determinar si el elemento debe ser eliminado.
remove_if
devuelve un iterador que apunta al comienzo de los elementos para eliminar en el contenedor. Para eliminar realmente los necesita utilizar erase
:
container.erase(remove_if(container.start(), container.end(), pred), container.end())
O eso, o tal vez que ha llamado erróneamente el algoritmo copy_if
? Que de alguna manera quedó fuera del estándar pero fue escrito sobre e implementado en Effective STL.
borra el elemento individual – Sergei
Actualmente existe un método llamado erase_if
en la biblioteca de Boost para pointer containers.
Está en Library Fundamentals v2
- 1. Python: ¿Dónde está freeze.py?
- 2. ¿Dónde está stdbool.h?
- 3. Dónde está CodeGenerationTools
- 4. ¿Dónde está FragmentActivity # onDetachFragment?
- 5. ¿Dónde está App.config?
- 6. Dónde está WebResource.axd
- 7. ¿Dónde está System.Windows.Threading.DispatcherTimer?
- 8. ¿Dónde está la encapsulación?
- 9. Dónde está java.nio.file
- 10. ¿Dónde está XAMPP's Shell?
- 11. ¿Dónde está javax.servlet?
- 12. ¿Dónde está TweetSharp?
- 13. ¿Dónde está System.ServiceModel.Web.dll?
- 14. ¿Dónde está pyside-uic?
- 15. ¿Dónde está Boost.Process?
- 16. MonoTouch: ¿Dónde está Frame.Origin?
- 17. ¿dónde está org.apache.derby.jdbc.ClientDriver?
- 18. Dónde está Microsoft.Sharepoint.IdentityModel.dll
- 19. ¿Dónde está jarsigner?
- 20. swt.jar ¿dónde está?
- 21. ¿Dónde está System.Web.Security.MembershipProvider?
- 22. ¿Dónde está Request.CreateErrorResponse?
- 23. ¿Dónde está instalado microsoft.office.tools.excel.dll?
- 24. ¿Dónde está shared_ptr?
- 25. ¿Dónde está ISafeRunnable?
- 26. ¿Dónde está ClaimTypes.IdentityProvider?
- 27. ¿Dónde está Float # to_d?
- 28. ¿Dónde está mi XDeclaration?
- 29. ¿Dónde está Machine.Config?
- 30. Guava: ¿Dónde está CharEscaper?
Y lo encontrará en '', junto con los otros algoritmos estándar. –
borra el elemento único – Sergei