c++ - 在 C++ 中使用 rand() 和 srand()

标签 c++ class ctime

我创建了一个带有函数的类,该函数返回随机生成的 pair<int, int>来表示坐标对。在函数的开头我有 srand(time(NULL))我用rand() % 50得到随机数对。

效果很好……只要我只有一个对象。如果我有该类的两个不同对象并为每个对象调用该函数(我的意思是尝试为该类的两个不同对象生成两个不同的随机坐标),它会为每个对象返回完全相同的坐标对。

回想起来,我能理解为什么会这样——因为我是根据当前时间获取随机数,对吗?但是,每次调用该类的函数时,我应该使用什么方法来返回随机对?

最佳答案

At the beginning of the function I have srand(time(NULL))

调用srand() 一次在您的程序开始时,再也不会。

PS:考虑使用 <random> 而不是 C 语言的传统函数。

关于c++ - 在 C++ 中使用 rand() 和 srand(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22604201/

相关文章:

c++ - 无法使用mysql++连接到SQL数据库

c++ - 如何从派生类访问基类中的重载运算符?

performance - 1000 万个输入的合并排序

c++ - GMT\UTC 与 DST 的历史时间

c++ - 如何减轻文件中远离其所有者命名空间声明的类声明?

c++ - 将 Google 地球嵌入到桌面应用程序而非网站中。 QT 是一个真正的选择吗?

c++ - 使用包含文件(自己的类)编译时出错

c++ - 如何从 ctime 巧妙地初始化 struct tm

c++ - 为什么这行得通? std::set 使用搜索键和自定义比较器查找

python - 如何在Python中为类设置字符串渲染方法