Lassen Sie uns sagen, ich habe folgendes Objekt:Was ist der beste Weg, um das Ergebnis einer Elementfunktion für alle Elemente in einem Container zu summieren?
struct Foo
{
int size() { return 2; }
};
Was ist der beste Weg, (die meisten wartbar, lesbar, etc.) in einem vector<Foo>
die Gesamt size
aller Objekte zu bekommen? Ich werde meine Lösung posten, aber ich bin an besseren Ideen interessiert.
Update:
Bisher haben wir:
- std :: akkumulieren und ein Funktor
- std :: akkumulieren und ein Lambda-Ausdruck
- plain ol‘for-Schleife
Gibt es noch andere praktikable Lösungen? Können Sie mit boost::bind
oder std::bind1st/2nd
etwas Wartbares machen?
'std :: vector vec verwendet; vec.size() * 2', da wir wissen, dass 'Foo :: size' immer 2 zurückgibt. :) –
jalf