STL - accumulate

Dal quinto capitolo di Designing Components with the C++ STL, di Ulrich Breymann. Algoritmi numerici.

Sezione dedicata alle operazioni numeriche generali utilizzabili includendo numeric.

5.6.4: accumulate

Il comportamento standard di accumulate é quello di sommare tutti gli elementi della sequenza passata. É possibile passare un'altra operazione, ad esempio il prodotto, per ottenere differenti risultati.

Ecco un esempio di sommatoria e produttoria:

#include<algo.h>
#include<numeric>
#include<vector>

using namespace std;

int main() {
vector<int> v(10);
iota(v.begin(), v.end(), 1);

vector<int>::const_iterator last = --(v.end());
cout << "The sequence " << v[0] << ", " << v[1] << ", ..., " << *last;
cout << " has sum " << accumulate(v.begin(), v.end(), 0) << " and product ";
cout << accumulate(v.begin(), v.end(), 1L, multiplies()) << endl;
}

Nessun commento:

Posta un commento