我明白,使用srand(时间(0)),有助于设置随机种子。但是,下面的代码为两个不同的列表存储相同的一组数字。如何在同一个程序/函数中每次生成不同的随机数字集?
想知道,当以下函数被多次调用时,如何生成不同的数字集合。
void storeRandomNos(std::list<int>& dataToStore)
{
int noofElements = 0;
srand(time(0));
noofElements = (rand() % 14) + 1;
while (noofElements --)
{
dataToStore.push_back(rand() % 20 + 1);
}
}
下面是其余的代码。
void printList(const std::list<int>& dataElements, const char* msg);
void storeRandomNos(std::list<int>& dataToStore);
int main()
{
std::list<int> numberColl1;
std::list<int> numberColl2;
storeRandomNos(numberColl1);
storeRandomNos(numberColl2);
printList(numberColl1 , "List1");
printList(numberColl2 , "Second list");
}
void printList(const std::list<int>& dataElements, const char* msg)
{
std::cout << msg << std::endl;
std::list<int>::const_iterator curLoc = dataElements.begin();
for (; curLoc != dataElements.end() ; ++curLoc)
{
std::cout << *curLoc << ' ';
}
}
感谢您的解决方案。 – user373215 2010-08-06 12:42:25