📅  最后修改于: 2023-12-03 15:38:31.385000             🧑  作者: Mango
在C++中,可以使用标准库中的<vector>
头文件来定义和操作向量。如果需要生成具有随机值的向量,可以使用<random>
头文件中的随机数生成器。
#include <vector>
#include <random>
#include <ctime> // 用于设置随机数种子
在使用随机数生成器之前,需要设置随机数种子(seed),否则每次运行程序生成的随机数序列是相同的。可以使用<ctime>
头文件中的time()
函数获取系统当前时间作为随机数种子。
std::mt19937 rng(std::time(nullptr)); // 使用当前时间作为随机数种子
使用std::uniform_int_distribution
或std::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++中生成具有随机值的向量的介绍。