2016-11-24 31 views
0

我剛開始proggraming,我不知道發生了什麼不這兒過得知道爲什麼我的Visual Studio給我的錯誤尖線最小最大(表達式必須是一個指針一個完整的對象類型)表達式必須是一個指向一個完整的對象類型,而創建陣列

std::array<float, 2> *minmax(std::vector<float> v) { 

int min = v.front(); 
for (int i = 0; i < v.size(); i++) 
    if (min > v.at(i)) 
     min = v.at(i); 
int max = v.front(); 
for (int i = 0; i < v.size(); i++) 
    if (max < v.at(i)) 
     max = v.at(i); 

minmax[0] = min;  <------- 
minmax[1] = max;  <------- 


} 
+0

您正在使用Pascal語法返回值。 C++做了一個不同的方式。 –

+0

然後,我應該改變,因爲我不知道該怎麼做。 – Dzidek

+0

而不是僅僅編寫東西,請嘗試查閱語言參考手冊以瞭解如何從函數返回值。 –

回答

0

有您需要更改這個編譯幾件事情:你有沒有定義所謂的「最小最大」的數組,所以你需要做的,首先,你之前嘗試將最小值和最大值分配給它。你的函數還沒有返回數組。

+0

我應該在main中定義它嗎? – Dzidek

+0

函數應該返回的數組應該在函數的主體中定義。這意味着像 「的std ::陣列 *最小最大=新的std ::陣列();」 –

+0

在你的問題中的代碼示例的兩個大括號之間應該出現(不帶「引號),除了多了一個問題(意外按下回車,這樣獨立評論):你給了,你試圖返回相同的數組命名爲您的功能,所以你可能會得到一個警告,這不是一個大問題,現在,但它可以,如果你曾經嘗試寫一個遞歸函數,因爲它「掩蓋」在身體內的功能本身的名稱的功能,所以你不能夠從調用函數本身您定義了這個變量之後的功能。爲了解決這個問題,簡單地命名陣列「結果」或類似的東西來代替,然後返回結果。 –

相關問題