J'ai un conteneur et j'aimerais effacer des éléments basés sur un prédicat. Erase_if semble familier, mais je ne le trouve pas en C++. Quel est le nom et où est-il défini? Je voudrais l'utiliser avec un lambda dans VS10.Où est erase_if?
Répondre
Je crois que vous voulez remove_if
Vous êtes probablement pour std::remove_if
, dans un motif tel que:
vec.erase(std::remove_if(vec.begin(), vec.end(), predicate), vec.end());
Il y a un list::remove_if
, mais pas pour toutes les classes de conteneurs. remove_if
existe également en tant qu'algorithme, qui peut être utilisé avec les itérateurs que vous pouvez obtenir à partir de begin()
et de end()
.
Je suppose que vous pensez à remove_if
qui prend un prédicat pour déterminer si l'élément doit être retiré.
remove_if
renvoie un itérateur pointant vers le début des éléments à supprimer dans le conteneur. Pour les supprimer en fait, vous devez utiliser erase
:
container.erase(remove_if(container.start(), container.end(), pred), container.end())
Soit ça ou peut-être vous l'avez rappelé à tort l'algorithme copy_if
? Qui d'une manière ou d'une autre a été exclu de la norme mais a été écrit à propos de - et mis en œuvre - dans Effective STL.
efface un seul élément – Sergei
Actuellement, il existe une méthode appelée erase_if
dans la bibliothèque Boost pour pointer containers.
Il est dans Library Fundamentals v2
- 1. Où est Shellrevealed
- 2. Où est "CDO.Appointment"
- 3. Où est l'encapsulation?
- 4. où est gacutil.exe?
- 5. Où est WebResource.axd
- 6. swt.jar où est-ce?
- 7. Où est mon erreur?
- 8. Où est android.os.SystemProperties?
- 9. où est défini Enum.values ()?
- 10. Où est HttpRequestBase?
- 11. où est user.config?
- 12. Où est groovy.swing.factory.BindProxyFactory?
- 13. Où est Microsoft.Scripting.Core.dll?
- 14. Où est Machine.Config?
- 15. Où est cookie .ASPXAUTH
- 16. Où est org.eclipse.core.runtime.Assert disponible?
- 17. Où est App.config?
- 18. Où est QWebView?
- 19. Où est l'exemple MiniBrowser
- 20. JPA2 - Où est EntityManager.detach?
- 21. NavigationWindow - Où est-ce?
- 22. Où est initialisé os.environ?
- 23. Où est cmcfg32.lib?
- 24. Où est l'appel TickCount()?
- 25. Où est AVFoundation Framework?
- 26. Python: Où est freeze.py?
- 27. Rails où est en.yml
- 28. Où est java.nio.file
- 29. où est onet.xml?
- 30. UIComboBox ... Où est-ce?
Et vous trouverez dans '', ainsi que les autres algorithmes standards. –
efface élément unique – Sergei