总结两个boost :: accumulator_set实例

时间:2012-05-13 11:55:25

标签: c++ boost c++11 boost-accumulators

我最近发现了优秀的库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实现此目的?我不知道这是否可以实现库中所有类型的累加器(可能不是尾部),但它肯定可以用于重要的事情,如计数,总和,平均值,时刻,协方差等

2 个答案:

答案 0 :(得分:3)

不幸的是,Boost.Accumulators不提供此功能,可能是因为组合仅适用于某些统计信息。

a ticket on the Boost tracker要求combine这样的功能。

答案 1 :(得分:1)

没有合适且可用的运算符+ =用于添加两个accumulator_set&lt;&gt;对象。