的正確的和我有這個問題:積累不給我矢量
int nCab = 11;
int nCabCombo;
std::vector<int>counter(nCab);
for(int i = nCab; i > 0; i--)
{
counter[i] = i-1;
std::cout<<counter[i]<<std::endl;
}
nCabCombo = std::accumulate(counter.begin(),counter.end(),0);
std::cout<<nCabCombo<<std::endl;
輸出是nCabCombo是45時它應該是55,因爲某些原因累加功能不加入的10是在我的計數器向量索引11。有人能告訴我我在這裏做錯了嗎?謝謝!
因爲'I = nCab'您嘗試在指數11訪問'VECTOR',當它的最大指數爲10,這是造成未定義的行爲。 – ppsz
爲什麼要以相反的順序初始化?請注意,還有'std :: iota'來填充範圍越來越大的值。 – Jarod42