マップの最初の 3 つの要素だけで使用std::accumulate
したい。map<int,int>
これは機能しません。私の間違いを指摘していただけますか?
int main(){
map<int, int> m;
m[1] = 1;
m[2] = 2;
m[3] = 4;
m[4] = 8;
struct pair_add {
int operator()(int i, const std::pair<int, int>& x) {
return i + x.second;
}
};
int cumSumQty = accumulate(m.begin(), m.end, 0, pair_add()); //THIS COMPILE
int cumSumQty = accumulate(m.begin(), m.begin()+3, 0, pair_add()); //THIS DOES NOT
}