08/09/19 09:39:44
for_each を使って、int型の配列 v の集計をしなさいという問題なので、
class sum
{
int total;
public:
sum() : total(0) { }
void operator()(int i)
{ total += i; }
int get()
{ return total; }
};
sum s;
s = for_each(v.begin(), v.end(), s);
としたのですが、代入しなければならないことが気に入りません。
for_each<vector<int>::iterator, sum&>
(v.begin(), v.end(), s)
とすれば出来たのですが、やっぱり何か違う気がします。
何かいい表現方法は無いでしょうか?