Ich habe eine std::vector<std::shared_ptr<Foo>>
von denen ich möchte, dass erase-remove Elemente mit einigen Prädikaten übereinstimmen. Für die entfernten Objekte sollte eine Methode aufgerufen werden, die einen Status für die Verwendung an anderer Stelle setzt.Entfernen Sie Elemente aus dem Vektor, und mutieren Sie diejenigen, die entfernt werden
Gibt es einen Grund, ich sollte dies in der Prädikatfunktion nicht tun, wenn wahr zurückgegeben wird? Es fühlt sich ein wenig an, als würde man Bedenken mischen, aber die einzigen Alternativen, die mir einfallen, scheinen viel hässlicher.
benannt Es wäre besser, die Alternativen zu fassen, sonst bist du gehen, um sie als Antworten. – djechlin
So würde ich es aber tun, was soll ich sagen, ich bin faul. Es gibt keine Alternative, die Ihnen erlaubt, die 'algorithm'-Bibliothek zu benutzen, oder? In beiden Fällen verstößt man gegen eine Vorstellung von "perfekten" Programmierstandards. (Edit: anscheinend gibt es das, aber ich wäre immer noch versucht, es auf deine Art zu tun!) – Elliott
Das ist die effizienteste Art, die ich mir vorstellen kann. – 101010