'rand'和'std :: rand'有什么区别?

时间:2019-08-27 15:10:40

标签: c++ namespaces

我是一名(科学的)Python程序员,刚刚开始使用C ++进行课程。 我找到了使用“包”并访问其功能的方法,这很令人困惑。

为了在C ++中生成伪随机数,建议我使用rand()documentation)中的cstdlib函数。这使我编写了以下代码:

#include <iostream>
#include <cstdlib>

int main()
{
    // Create random int that predicts future
    std::srand(time(NULL));
    int answer = std::rand() % 10;

    std::cout << answer;
    return 0;
}

我发现我并不需要简单地使用std::rand()来编写rand,如下所示。是否使用std的最佳实践是什么?从indirect cstdlib中得知,这是因为我使用了C库。 如果两个包都定义为函数,rand()恐怕会导致“包”之间发生冲突?

#include <iostream>
#include <cstdlib>

int main()
{
    // Create random int that predicts future
    srand(time(NULL));
    int answer = rand() % 10;

    std::cout << answer;
    return 0;
}

在python中,package.function()可以实现这些功能,在C ++中也是可能的。又如通过cstdlib::rand()访问随机数生成器。

P.S。 rand函数纯粹是一个示例。我想要一种基于它们来自的软件包来分离功能的方法。

0 个答案:

没有答案