Voy hacer unos post con ejemplos de utilización de la Stl de C++. Vamos con el primero:
Leamos una cantidad arbitraria de valores enteros (n>=1) del archivo “numbers.txt” y mostramos:
- Mínimo, máximo
- Media
- Promedio
- Media geométrica ((y1 * y2 * … yn)^(1/n))
Con Stl sería así:
vector<int> v;
copy(istream_iterator<int>(ifstream("numbers.txt")), istream_iterator<int>(), back_inserter(v));
sort(v.begin(), v.end());
cout << "min/max: " << v.front() << " " << v.back() << endl;
cout << "median : " << *(v.begin() + (v.size()/2)) << endl;
cout << "average: " << accumulate(v.begin(), v.end(), 0.0) / v.size() << endl;
cout << "geomean: " << pow(accumulate(v.begin(),v.end(),1.0,multiplies<double>()), 1.0/v.size())
<< endl;
Y listo!