【发布时间】:2013-07-20 07:33:06
【问题描述】:
我在我的程序中使用了 C++ rand() 函数,但是我发现在循环中使用 rand() 后运行它时我的程序会很慢。循环会重复多次,并将调用函数time() 作为rand() 的种子。
所以我想知道 C++ rand() 和 time() 函数是否会占用大量系统资源?
【问题讨论】:
-
你就不能测量一下吗?
-
这取决于实施,以及您认为“很多”的内容。
-
通常只需要播种一次。
-
计算负载很大程度上取决于使用的随机引擎类型:stackoverflow.com/questions/16536617/random-engine-differences/…
-
有不同的实现取决于谁编写了你的标准库。而且多次调用
srand(time(NULL))实际上比调用一次更糟糕,并且可能导致重复的值序列。