Visual c++ 生成50个随机数并将它们存储到一个数组C++中

Visual c++ 生成50个随机数并将它们存储到一个数组C++中,visual-c++,Visual C++,这就是我到目前为止对函数的理解。这只是问题的开始,它要求生成10×5组数字中的随机数作为输出,然后根据数字大小进行排序,但我只是想把第一部分记下来 /* Populate the array with 50 randomly generated integer values * in the range 1-50. */ void populateArray(int ar[], const int n) { int n; for (int i = 1; i <= lengt

这就是我到目前为止对函数的理解。这只是问题的开始,它要求生成10×5组数字中的随机数作为输出,然后根据数字大小进行排序,但我只是想把第一部分记下来

/* Populate the array with 50 randomly generated integer values
* in the range 1-50. */
void populateArray(int ar[], const int n) {
    int n;
    for (int i = 1; i <= length - 1; i++){

        for (int i = 1; i <= ARRAY_SIZE; i++) {
            i = rand() % 10 + 1;
            ar[n]++;
        }

    }
}

首先,我们要使用std::array;它有一些很好的特性,其中之一就是它不会作为指针衰减。另一个原因是它知道自己的大小。在本例中,我们将使用模板使populateArray成为一个足够通用的算法

template<std::size_t N>
void populateArray(std::array<int, N>& array) { ... }
并在我们的算法中使用它:

std::generate_n(array.begin(), N, [&dist, &generator](){ 
    return dist(generator); 
});

请以最大警告级别编译。如果您这样做,编译器应该警告您,您正在声明一个局部变量n,而另一个变量n已经存在,因此您正在隐藏参数n。您在行ar[n]++中使用了这个未初始化的n。还有:长度是多少?数组大小是多少?n应该是什么?谢谢你的反馈,但唯一的问题是我已经得到了主函数和所有函数,我们必须相应地构建函数
std::generate_n(array.begin(), N, [&dist, &generator](){ 
    return dist(generator); 
});