On a souvent besoin de calculer quelques statistiques sur un ensemble de données. Si calculer la moyenne en une passe est trivial, le calcul de l’écart type demande un peu d’attention. Ci-dessous, une solution que je poste comme pense-bête.
Le snippet calcule aussi les valeurs min et max.
Code snippet :
manual = "std::vector<int> vec; // Container with values uint64_t count = 0; uint64_t accu = 0; uint64_t accu2 = 0; uint64_t min = -1; uint64_t max = 0;
for_each(begin(vec), end(vec), [&](int x){ accu = x; accu2 = x * x; min = (std::min)(min, x); max = (std::max)(max, x); count; });