Boost.Random 库提供了许多随机数生成器,可让您决定应如何生成随机数。在 C++ 中,始终可以使用来自 cstdlib 的 std::rand() 生成随机数。但是,使用 std::rand() 生成随机数的方式取决于标准库的实现方式。
当包含头文件 boost/random.hpp 时,您可以使用 Boost.Random 中的所有随机数生成器和其他类和函数。
该库的大部分已添加到 C++11 的标准库中。如果您的开发环境支持 C++11,您可以通过包含头文件 random 并访问命名空间 std 来重写本章中的 Boost.Random 示例。
示例 60.1。带有 boost::random::mt19937 的伪随机数
- #include <boost/random.hpp>
- #include <iostream>
- #include <ctime>
- #include <cstdint>
-
- int main()
- {
- std::time_t now = std::time(0);
- boost::random::mt19937 gen{static_cast<std::uint32_t>(now)};
- std::cout << gen() << '\n';
- }
示例 60.1 访问随机数生成器 boost::random::mt19937。运算符 operator() 生成一个随机