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();
 }