
关于QT 5.15.0中将Qrand函数替换为QRandomGenerator的解决办法(原创).pdf
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文探讨了在Qt 5.15.0版本中用QRandomGenerator替代Qrand函数的方法,提供详细的迁移步骤与代码示例,旨在帮助开发者优化随机数生成器的性能和安全性。
在 Qt 5.15.0 版本中,Qrand 函数被抑制,并建议使用 QRandomGenerator 替代。Qrand 是一个遗留函数用于保持旧代码的兼容性,在新开发时不推荐使用。Qt 文档提供了关于该函数的详细说明:它返回介于0和RAND_MAX之间的随机数(RAND_MAX是在cstdlib或stdlib.h头文件中定义的一个常量)。为了正确利用 Qrand 函数,需要通过qsrand()来初始化伪随机生成器,并且在每个线程至少调用一次以设置种子。未进行此操作将导致序列被预设为一个固定值。
然而,在Qt的新版本里Qrand已经被抑制了,推荐使用QRandomGenerator替代。那么如何从 Qrand 转换到 QRandomGenerator 呢?RAND_MAX 在 stdlib.h 中定义为 `#define RAND_MAX 0x7fff`(十进制表示32767),所以Qrand的随机数范围是0-32767。因此,可以使用QRandomGenerator::global()->bounded(0, 32768) 来代替 Qrand 函数。
在采用 QRandomGenerator 的时候,请注意以下几点:
1. 它是一个线程安全的对象,在多线程环境中也可以正常工作。
2. 可以生成高质量的随机数,适用于各种应用场合。
3. 随机数范围可以按需调整。
通过将Qrand替换为QRandomGenerator,不仅可以解决随机数产生的问题,而且还能提升性能和安全性。
全部评论 (0)


