要编写STL随机数生成器的工厂方法,可以使用C++标准库中的random库。下面是一个包含代码示例的解决方法:
#include
#include
// 定义随机数生成器工厂方法
std::mt19937 createRandomGenerator()
{
// 使用随机设备作为种子
std::random_device rd;
// 使用mt19937引擎作为生成器
std::mt19937 gen(rd());
// 返回生成器
return gen;
}
int main() {
// 创建随机数生成器
std::mt19937 gen = createRandomGenerator();
// 创建一个均匀分布的随机数分布
std::uniform_int_distribution dist(1, 100);
// 生成随机数
int randomNum = dist(gen);
// 输出随机数
std::cout << "Random number: " << randomNum << std::endl;
return 0;
}
在上面的代码中,我们首先定义了createRandomGenerator
函数,该函数返回一个std::mt19937
类型的随机数生成器。在createRandomGenerator
函数中,我们使用std::random_device
来获取一个真正的随机设备作为种子,然后使用std::mt19937
引擎作为生成器。
在main
函数中,我们调用createRandomGenerator
函数创建一个随机数生成器,并使用std::uniform_int_distribution
定义一个均匀分布的随机数分布。然后,我们使用生成器和分布来生成一个随机数,并将其输出到控制台。
这样,我们就实现了一个STL随机数生成器的工厂方法。