Besoin d'une solution plus jolie de l'exemple ci-dessous mais avec std :: accumulate.en utilisant de std :: accumuler
#include <algorithm>
#include <vector>
#include <iostream>
class Object
{
public:
Object(double a, double b):
a_(a),
b_(b)
{}
double GetA() const { return a_; }
double GetB() const { return b_; }
// other methods
private:
double a_;
double b_;
};
class Calculator
{
public:
Calculator(double& result):
result_(result)
{}
void operator() (const Object& object)
{
// some formula
result_ += object.GetA() * object.GetB();
}
private:
double& result_;
};
int main()
{
std::vector<Object> collection;
collection.push_back(Object(1, 2));
collection.push_back(Object(3, 4));
double result = 0.0;
std::for_each(collection.begin(), collection.end(),
Calculator(result));
std::cout << "result = " << result << std::endl;
return 0;
}
Alors, pourquoi utilisez-vous std :: accumule pas? Quelle est exactement la question? – jalf
@jalf: Bon point - Je me demande qu'est ce que mon code manque :) – dirkgently
Acumulate retourne quoi? Je pensais qu'il retourne le même type qu'un objet, non? –