1

マップの最初の 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
}
4

3 に答える 3