0
我試圖做一個函數,重新排列矢量的元素,如果它不是升序。我寫了這個,但是當我編譯它,我得到:爲什麼我得到std :: out_of_range錯誤?
拋出的一個實例「的std :: out_of_range」什麼()終止後,被稱爲:矢量:: _ M_range_check
有人能告訴我什麼是我的功能錯了?謝謝。
void reorder(vector<double>& orderA)
{
for (unsigned int i = 0; i < orderAngle.size(); ++i)
{
temp = orderA.at(i);
orderA.at(i) = orderA.at(i+1);
orderA.at(i+1) = temp;
}
return;
}
我+ 1超出範圍,當i = orderAngle.size() - 1,最重要的是,代碼不會做它應該。你需要全面的分類功能。 – Incomputable
當你的計數器等於'大小-1'時,它將嘗試獲取最後一個元素和下一個不存在的元素。你的循環函數應該是'i
總是在你的函數的末尾寫入'return'。如果你忘記寫它,函數將永遠執行。 –