Gần đây tôi đã khám phá ra thư viện tuyệt vời boost :: accumulators, và tôi muốn sử dụng nó để thay thế một số mã của tôi tích luỹ số liệu thống kê.Tổng hợp hai trường hợp tăng cường :: accumulator_set
Một điều tôi không thể tìm thấy trong tài liệu là khả năng tổng hợp hai bộ accumulator, như trong điều hành + =
Ví dụ:
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); }
};
Làm thế nào tôi có thể đạt được điều này bằng cách sử dụng API có sẵn? Tôi không biết nếu điều này có thể được thực hiện cho tất cả các loại ắc quy trong thư viện (có thể không phải cho đuôi), nhưng nó chắc chắn có thể cho những thứ quan trọng, như đếm, tổng, nghĩa, thời điểm, hiệp phương sai, v.v.
Bạn cũng quên 'return * this;', mặc dù điều này không liên quan. – Matt
@Matt, bên cạnh điểm, nhưng vẫn đáng giá ... – killogre