Ich habe kürzlich die ausgezeichnete Bibliothek boost :: accumulators entdeckt, und ich möchte sie verwenden, um etwas von meinem Code zu ersetzen, der Statistiken sammelt.Zusammenfassen von zwei boost :: accumulator_set-Instanzen
Eine Sache, die ich nicht in der Dokumentation finden, ist die Fähigkeit, zwei Akkusätze zusammenzufassen, wie es in Operator + =
Beispiel:
using namespace boost::accumulators;
typedef accumulator_set<double, features<tag::variance> > AccumSet;
class Foo {
AccumSet acc;
public:
Foo& operator+=(const Foo& that) {
this->acc += that.acc; // error! no such operator
return *this;
}
double GetVariance() { return variance(acc); }
};
Wie kann ich erreichen, das die verfügbare API? Ich weiß nicht, ob dies für alle Arten von Akkumulatoren in der Bibliothek implementiert werden kann (vielleicht nicht für Tail), aber es kann sicher für wichtige Dinge wie Anzahl, Summe, Mittelwert, Moment, Kovarianz usw.
Sie vergessen auch, 'this;' zurückzukehren, obwohl das nicht verwandt ist. – Matt
@Matt, neben dem Punkt, aber immer noch Wert zu beheben ... – killogre