使用srand(time(0))调用重载函数是不明确的?

时间:2014-11-21 11:38:13

标签: c++

我在我的程序中使用了srand(time(0))来生成随机数,问题是我的编译器显示了一个错误,即调用了重载' srand(time_t)'很暧昧。我不知道我做错了什么。 请帮忙。我想生成在我的扫雷程序中使用的随机数,但它给出了这个错误。通常在任何其他程序,我只是输出它工作正常的值,但在这种情况下,我正在将随机值初始化为变量。我不知道该怎么做

1 个答案:

答案 0 :(得分:1)

这意味着您出于某种原因在某处声明了srand的非标准重载。

寻找并摧毁流氓超载;或指定std::srand(如果您的标准库实现没有错误);或者将参数类型转换为unsigned int以明确选择标准类型。

另外,看看新的(ish)C ++随机数库:http://en.cppreference.com/w/cpp/numeric/random。它有点复杂,但更灵活,没有全球国家的邪恶。