我想std::accumulate
在map<int,int>
地图的前 3 个元素上使用。这不起作用,你能指出我的错误吗?
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
}