我最近发现了优秀的库boost :: accumulators,我想用它来代替我积累统计数据的一些代码。
我在文档中找不到的一件事是能够对两个累加器集合求和,如运算符+ =
示例:
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); }
};
如何使用可用的API实现此目的?我不知道这是否可以实现库中所有类型的累加器(可能不是尾部),但它肯定可以用于重要的事情,如计数,总和,平均值,时刻,协方差等
答案 0 :(得分:3)
不幸的是,Boost.Accumulators不提供此功能,可能是因为组合仅适用于某些统计信息。
a ticket on the Boost tracker要求combine
这样的功能。
答案 1 :(得分:1)
没有合适且可用的运算符+ =用于添加两个accumulator_set&lt;&gt;对象。