-1

当我运行我的代码时:

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);

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

4

1 回答 1

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

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

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

于 2013-07-15T21:50:38.017 回答