gpt4 book ai didi

c++ - 图书馆中随机数生成器使用的最佳实践/习语

转载 作者:行者123 更新时间:2023-11-30 03:57:26 26 4
gpt4 key购买 nike

假设我正在编写一个使用 C++11 的 prng 功能的库。库中的每个函数/对象/文件都应该初始化自己的随机数生成器吗?我打算在命名空间中初始化一个静态 std::mt19937,然后只使用那个,但代码的模块化程度较低。这是推荐的吗?

最佳答案

它不是线程安全的,因此如果您要产生多个线程,请创建更多 MT19937 prng 实例。否则,这完全取决于你。除此之外的任何答案都将主要基于意见。

如果您没有内存限制,为什么要尝试优化像应用程序中的 prng 实例数这样微不足道的事情?简单的答案:做使您的程序最容易编写、调试和管理的事情。

一个可能的解决方案是在每个对象中保存对 MT19937 的引用,并通过锁定结构控制对它的访问以使其线程安全。

关于c++ - 图书馆中随机数生成器使用的最佳实践/习语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27997584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com