我正試圖使用遞回法找到一個向量中的最大值,但我一直得到一個分段故障。我搞不清楚這個問題。有誰知道原因嗎?
int find_max(vector< int> integer_array, int i) { //variable i just keeps track of the index starting at 0。
if(i == integer_array.size()-1) {
return integer_array[i];
}
return max(integer_array[i], find_max(integer_array, i ))。
}
//Example of a call: find_max(vector_array, 0);
更新:我知道它的效率很低,但這只是為了練習遞回......
。
uj5u.com熱心網友回復:
我假定向量總是有元素。
在回傳陳述句中,應該是i 1而不是i :
return max(integer_array[i], find_max(integer_array, i 1));.
另外,我建議為find_max的第一個引數提供const ref:
int find_max(const vector<int> &integer_array, int i).
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/306731.html
標籤:
