2012-05-13 81 views
11

我最近發現了優庫的boost ::蓄電池,我想用它來代替我的一些代碼,累積統計。總結兩個升壓:: accumulator_set實例

一兩件事,我不能在文檔中找到的是要總結2分蓄集的能力,如經營者+ =

例子:

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

你也忘了'返回*本;',雖然這是不相關的。 – Matt

+0

@Matt,旁邊的點,但仍然值得修復... – killogre

回答

3

不幸的是,Boost.Accumulators不提供此功能,可能是因爲組合僅適用於某些統計信息。

a ticket on the Boost tracker問這樣一個combine功能。

+0

謝謝。在四處張望併發布在boost郵件列表中後,我得出了相同的結論。我不知道那張票是4年前打開的!我的問題是,是否有可以支持的統計數據的一些解決方法。 – killogre

1

沒有適當和可用的操作員+ =爲增加兩個accumulator_set <>對象。