我最近发现了一个很棒的boost::accumulators库,我想用它来替换我的一些累积统计数据的代码。
我在文档中找不到的一件事是对两个累加器集合求和的能力,就像在operator+=中一样
示例:
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来实现这一点?我不知道这是否可以在库中的所有类型的累加器中实现(可能不是为tail实现的),但它肯定可以用于重要的事情,如计数、总和、均值、矩、协方差等
发布于 2012-05-25 00:30:49
不幸的是,Boost.Accumulators没有提供此功能,可能是因为组合只适用于某些统计信息。
有一个要求这样的combine函数的a ticket on the Boost tracker。
发布于 2016-01-26 21:37:09
没有合适且可用的operator+=来添加两个accumulator_set<>对象。
https://stackoverflow.com/questions/10571501
复制相似问题