ブースト アキュムレータを使用して、C++ の double のベクトルから統計を取得しています。新しい統計が必要になるたびに、アキュムレータを作成し、ベクトル値をロードし、最後にブースト統計関数を使用してそれを取得するカスタム メソッドを呼び出しています。
double Entity::min(void) {
accumulator_set< double, features< tag::min > > acc;
// Now load the vector into the accumulator.
acc = std::for_each( samples.begin(), samples.end(), acc );
// Specify namespace to avoid name clash of this min method
this->_min = boost::accumulators::min(acc);
return this->_min;
}
// etc. more methods for StdDev, mean, max etc.
私の質問は次のとおりです。異なる方法でアキュムレータを作成するたびに、ベクトルのメモリ要件が重複しますか? それらをすべて一度に取得する「getStatstics」メソッドを作成できることはわかっていますが、アキュムレータの作成とロードが、作成されるたびに元のベクトルと少なくとも同じ量のメモリを使用するかどうかは特に疑問です。
みんなありがとう
ピート