📜  如何在C++中生成具有随机值的向量?(1)

📅  最后修改于: 2023-12-03 15:38:31.385000             🧑  作者: Mango

如何在C++中生成具有随机值的向量?

在C++中,可以使用标准库中的<vector>头文件来定义和操作向量。如果需要生成具有随机值的向量,可以使用<random>头文件中的随机数生成器。

导入头文件
#include <vector>
#include <random>
#include <ctime> // 用于设置随机数种子
设置随机数种子

在使用随机数生成器之前,需要设置随机数种子(seed),否则每次运行程序生成的随机数序列是相同的。可以使用<ctime>头文件中的time()函数获取系统当前时间作为随机数种子。

std::mt19937 rng(std::time(nullptr)); // 使用当前时间作为随机数种子
生成随机向量

使用std::uniform_int_distributionstd::uniform_real_distribution类生成均匀分布的随机数,然后将它们添加到向量中。

std::vector<int> vec_int;
std::uniform_int_distribution<int> dist_int(0, 100); // 生成[0, 100]的整数
for (int i = 0; i < 10; i++) {
    vec_int.push_back(dist_int(rng));
}

std::vector<double> vec_double;
std::uniform_real_distribution<double> dist_double(0.0, 1.0); // 生成[0.0, 1.0)之间的浮点数
for (int i = 0; i < 10; i++) {
    vec_double.push_back(dist_double(rng));
}
完整代码
#include <vector>
#include <random>
#include <ctime>

int main() {
    std::mt19937 rng(std::time(nullptr));
    std::vector<int> vec_int;
    std::uniform_int_distribution<int> dist_int(0, 100);
    for (int i = 0; i < 10; i++) {
        vec_int.push_back(dist_int(rng));
    }
    std::vector<double> vec_double;
    std::uniform_real_distribution<double> dist_double(0.0, 1.0);
    for (int i = 0; i < 10; i++) {
        vec_double.push_back(dist_double(rng));
    }
    return 0;
}

以上就是在C++中生成具有随机值的向量的介绍。