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

时间:2014-03-24 08:21:22

标签: c++ class ctime

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

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

回想起来,我能理解为什么会发生这种情况 - 因为我根据当前时间得到随机数,对吧?但是我应该使用什么方法来返回随机对,每次我称之为该类的函数?

1 个答案:

答案 0 :(得分:1)

  

在函数的开头我有srand(time(NULL))

在程序开头调用srand() 一次,再也不要。

PS:考虑使用<random>而不是C-traditional功能。