Oui là c'est bon.
Seulement, ce qui n'était pas bon, c'est de vouloir accumuler plusieurs informations en même temps (à la fois capacité du réservoir d'essence et nombre de roues).
std::accumulate sert à accumuler une seule chose, en parcourant chaque objet d'une séquence, et non pas à parcourir tous les objets et manipuler plusieurs de leurs informations séparément --- ce qui est principalement l'utilité de foreach.