我创建了一个带有函数的类,该函数返回随机生成的 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/