C++ 如何使用函数参数设置数组大小?
我在写一些练习代码时遇到了一个问题。它是关于数组大小设置的。我尝试了几种不同的方法,但都不管用 这是我的密码:C++ 如何使用函数参数设置数组大小?,c++,vector,C++,Vector,我在写一些练习代码时遇到了一个问题。它是关于数组大小设置的。我尝试了几种不同的方法,但都不管用 这是我的密码: float mean(vector<float> numbers){ int size = numbers.size(); float dizi[size]; float ort,toplam = 0.0; for(unsigned int i=0; i<numbers.size(); i++){ dizi[i
float mean(vector<float> numbers){
int size = numbers.size();
float dizi[size];
float ort,toplam = 0.0;
for(unsigned int i=0; i<numbers.size(); i++){
dizi[i] = numbers[i];
toplam += dizi[i];
}
ort = toplam / numbers.size();
return ort;
}
浮点平均值(矢量数){
int size=numbers.size();
浮动笛子[大小];
浮式ort,托普兰=0.0;
对于(未签名的int i=0;i < p>),不能用一个函数参数设置数组的大小,而不允许编译器有非标准扩展。根据C++标准,数组长度必须是程序编译时已知的常数。
然而
这里似乎不需要数组。我可以建议更像
float mean(vector<float> numbers){
int size=numbers.size();
float ort,toplam=0.0;
for(unsigned int i=0;i<numbers.size();i++){
toplam+=numbers[i];
}
ort=toplam/numbers.size();
return ort;
}
浮点平均值(矢量数){
int size=numbers.size();
浮式ort,托普兰=0.0;
对于(unsigned int i=0;iWell,不要使用变长数组?为什么你甚至需要这个数组,你已经有了一个很好的集合来对数字进行求和。使用std::array
代替。使用std::array
和/或std::vector
代替C样式的数组。@Omid它在编译时不为人所知……事实上,没有理由使用dizide>。甚至通过常量ref而不是值传递向量。我怎么能思考呢。谢谢
float mean(vector<float> numbers){
float toplam=0.0;
for(float num: numbers){
toplam+=num;
}
return toplam/numbers.size();
}
float mean(vector<float> numbers){
return std::accumulate(numbers.begin(), numbers.end(), 0.0f)/numbers.size();
}