Я использую импульсные аккумуляторы для получения статистики из вектора удвоений в C++. Каждый раз, когда мне нужна новая статистика, я вызываю собственный метод, который получает его, создавая накопитель, загружая его векторными значениями и, наконец, используя статистическую функцию boost, например.Использование и эффективность использования аккумулятора аккумулятора Boost
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, который бы сразу получил их, но мне интересно, если создание и загрузка аккумулятора использует по крайней мере столько же памяти, сколько и оригинальный вектор каждый раз, когда он сделан.
Спасибо, ребята
Пит
является 'samples' атрибутом класса, обозначаемого' this'? – didierc
Да didierc, samples является свойством класса Entity и определяется как вектор –
Pete855217