C ++生成随机数的多个初始化错误

时间:2013-07-15 21:47:42

标签: c++

当我运行我的代码时:

int a;
int b;
int c;

int x;
int y;
int z;

int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<int> dis(1, 10000000);
    int a = dis(gen);
    printf("%d", a);

    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<int> dis(1, 10000000);
    int b = dis(gen);
    printf("%d", b);

它生成'错误C2374:'gen':重新定义;多次初始化'错误。我该如何解决?我是否只需要使用部分代码来生成2个不同的数字?另外,如果我想将第一个变量的1-10000000更改为1-20,我该怎么做?

1 个答案:

答案 0 :(得分:1)

std::mt19937 gen(rd());
...
std::mt19937 gen(rd());

不要两次初始化gen。做一次吧。使用不同的变量 - 不同的名称,用于不同的事物。

此外,不要定义全局变量abcxyz。他们完全没用。尽可能在本地定义每个变量。