一、random_device

创建随机设备对象,通过本设备的随机数生成器生成随机种子,而不是使用时间生产随机种子

std::random_device rd;

二、mt19937

创建随机数引擎对象,参数是创建的随机设备对象random_device,随机设备对象重载了(),rd()在这里是可调用对象

std::mt19937 gen(rd());

三、uniform_int_distribution

创建随机数分布对象-均匀分布,参数是范围,最小值和最大值的范围,范围是闭区间

 std::uniform_int_distribution<int> dis(min,max);

四、生成随机数

  int randomNumber = dis(gen);

完整代码

生成一个随机数数组

std::vector<int> generateRandomArray(int size)
{
    std::vector<int> arr;
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<int> dis(0, 10000);
    for (size_t i = 0; i < size; i++)
    {
        arr.push_back(dis(gen));
    }
    return arr;
}