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

在你的问题中的代码示例的两个大括号之间应该出现(不带“引号),除了多了一个问题(意外按下回车,这样独立评论):你给了,你试图返回相同的数组命名为您的功能,所以你可能会得到一个警告,这不是一个大问题,现在,但它可以,如果你曾经尝试写一个递归函数,因为它“掩盖”在身体内的功能本身的名称的功能,所以你不能够从调用函数本身您定义了这个变量之后的功能。为了解决这个问题,简单地命名阵列“结果”或类似的东西来代替,然后返回结果。 –

相关问题