Ich möchte einige Elemente aus Vec
entfernen, aber vec.iter().filter().collect()
erstellt einen neuen Vektor mit ausgeliehenen Elementen.
Ich möchte die ursprüngliche Vec
ohne zusätzliche Speicherzuweisung mutieren (und den Speicher der entfernten Elemente als zusätzliche Kapazität des Vektors behalten).
Wenn Sie wirklich die Elemente des Vektors mutieren wollen, während Sie filtern, können Sie die nächtliche Methode verwenden Vec::drain_filter
, ein extrem flexibles Werkzeug:
Sie können auch die entfernten Elemente abrufen, da der Rückgabewert der gesamten Methode ein Iterator ist!