2016-11-24 8 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

パスカル構文を使用して値を返しています。 C++はそれとは別の方法です。 –

+0

それから私が何をするべきなのかわからなくなってしまうのです。 – Dzidek

+0

単に物を作り上げるのではなく、関数から値を返す方法を知るために、言語リファレンスマニュアルを調べてみてください。 –

答えて

0

にあなたは、これはコンパイルするために変更する必要があるものがいくつかあります:あなたが最初のことを行う必要があるので、あなたは、あなたの前に、「MINMAX」と呼ばれる配列を定義していませんその値にminとmaxの値を代入してみてください。あなたの関数はまだ配列を返しません。

+0

私はそれをmainで定義すべきですか? – Dzidek

+0

関数が返す配列は、関数の本体で定義する必要があります。これは、 "std :: array * minmax = new std :: array ();" –

+0

もう1つの問題を除いて(間違って押されたので、別々のコメントを入力してください):同じものを返そうとしている配列を指定しています名前はあなたの関数であるので、おそらく警告を出すでしょう。今は大きな問題ではありませんが、本体内の関数自体の名前を「隠す」ため、再帰関数を書くことを試みたことがありますこの変数を定義した後に、関数自体から関数を呼び出すことはできません。これを修正するには、代わりに配列 "result"などの名前を付けてからresultを返します。 –

関連する問題