qt生成不重复的随机数
时间: 2024-10-12 07:06:48 浏览: 8
Qt是一种跨平台的C++应用程序开发框架,它提供了一套丰富的图形用户界面工具库。在Qt中,如果你想生成不重复的随机数,你可以使用`QRandomGenerator`类配合`qrand()`函数,它们通常与容器类如`QSet`或`std::set`一起使用来保证唯一性。
下面是一个简单的例子,展示了如何从0到某个范围内的整数生成不重复的随机数:
```cpp
#include <QRandomGenerator>
#include <set>
std::set<int> uniqueNumbers;
const int maxNum = 100; // 设定最大值
void generateUniqueRandoms(int count) {
QRandomGenerator generator;
for (int i = 0; i < count && !uniqueNumbers.contains(maxNum); ++i) {
int randomInt = generator.nextInt(maxNum);
uniqueNumbers.insert(randomInt);
}
}
// 使用示例
generateUniqueRandoms(10);
// 现在uniqueNumbers集合里有10个不重复的0到99之间的随机数
```
在这个例子中,我们首先创建了一个`QRandomGenerator`实例并使用`nextInt()`函数生成随机数,然后检查这个数字是否已经在`uniqueNumbers`集中,如果没有就插入进去。当需要的随机数数量达到`count`或者已经无法再生成新的不重复数时,循环会停止。