For loop (这里是新手)基于范围的函数中循环不工作(C+;+;) 我一直在做一些C++练习,我偶然发现C++中的一个问题: ,这对我来说是一个比较新的话题。我决定做一个函数,它接受一个整数数组,并提供一个特定的数字,无论它是最大值、最小值还是所有数字的平均值

For loop (这里是新手)基于范围的函数中循环不工作(C+;+;) 我一直在做一些C++练习,我偶然发现C++中的一个问题: ,这对我来说是一个比较新的话题。我决定做一个函数,它接受一个整数数组,并提供一个特定的数字,无论它是最大值、最小值还是所有数字的平均值,for-loop,For Loop,所以我认为做这个for循环要容易得多,因为它根本不需要数组大小!但是我的编译器不喜欢我的想法。请参见下面的代码(函数是用葡萄牙语编写的,但这并不重要): #包括 #包括 #包括 #包括 #包括 #包括 #包括 使用名称空间std; 无效juradosLegais(国际v[]); 浮点数(整数v[]); 皮奥诺塔国际机场(国际v[]); 内特梅尔霍诺塔(内特v[]); float-getMedia(intv[]); 无效存储值(int v[]); int main(){ setlocale(葡萄牙

所以我认为做这个for循环要容易得多,因为它根本不需要数组大小!但是我的编译器不喜欢我的想法。请参见下面的代码(函数是用葡萄牙语编写的,但这并不重要):

#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
无效juradosLegais(国际v[]);
浮点数(整数v[]);
皮奥诺塔国际机场(国际v[]);
内特梅尔霍诺塔(内特v[]);
float-getMedia(intv[]);
无效存储值(int v[]);
int main(){
setlocale(葡萄牙语);
国际注释[5];
存储值(NOTA);

cout如果我没记错的话,内置数组(比如
int notas[5];
)就不工作了,因为它们不跟踪大小,也没有成员函数(比如
begin
end
)这是基于范围的
for
循环工作所必需的。请改用标准库类来执行此操作并将其传入。然后您的
for
循环应该工作。因此,请改用:

int notas[5];
你会做:

std::array<int, 5> notas;
您可以这样声明它们:

 void juradosLegais(int v[])
 template <class arraytype>
 void juradosLegais(arraytype v)
 {
     ...
 }
更好的是,不要使用任何类型的数组,而只使用
向量
。它们更安全、更灵活,在大多数情况下通常与数组一样快

 void juradosLegais(int v[])
 template <class arraytype>
 void juradosLegais(arraytype v)
 {
     ...
 }
 void juradosLegais(std::array<int, 5> v)
 {
     ...
 }
#include <array>