查询C++中的rand()函数

use*_*307 5 c++ random

我在C++中有关于rand()函数用法的2个查询:

  1. rand()函数在哪里定义?我cout<<rand()<<endl;在一个循环中编写了一个简单的程序 ,但我没有包含任何头文件,除了<iostream>..这是如何工作的?在参考示例中,我遇到了一些网站,有些人说,你需要包括 <stdlib.h>,其他人说,<time.h>..所以想知道我的程序是如何工作的.任何想法?
  2. 我使用"兰特()",需要通过给种子函数srand初始化以前也听说过,一般的种子是当前Unix时间- > srand(time(NULL))..但同样,我没有做这在我刚度过简单的程序cout<<rand()<<endl;中while循环,它显示随机数.所以问题:srand(time(NULL))用于改善随机性,因为它不是强制性的?如果不是什么可能是使用它的意义.

感谢您的帮助!

谢谢!

jro*_*rok 3

它在<cstdlib>标头中声明。标准库头(<iostream>在您的示例中)可能包含其他标准头,但您不应该依赖它,因为它是特定于实现的。明确包含您需要的标头。

播种随机数生成器是强制性的,除非您对程序每次运行时都会生成相同的“随机”序列感到满意:)