ключ может быть в том, как вы делаете [...] // Заполняете значения в A `вектор A double B = 0;
A.reserve(100);
A.push_back(1);
A.push_back(2);
B = accumulate(A.begin(), A.end(), 0);
return 0;
разрешает B = 3.0
, еслипосле резервирования вы делаете [0] = 1, это плохой код.вместо этого вы можете сказать: изменить размер.
резерв дает только объем резервной памяти, фактически не создает действительных итераторов .. поэтому A.begin () по-прежнему равен A.end ()
Глядя на изменение кода, знаете ли вы разницу между целым числом и двойной математикой?члены 1 и 2 неотъемлемы?