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

C++ C++;生成随机数的多次初始化错误,c++,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

当我运行代码时:

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);
inta;
int b;
INTC;
int x;
int-y;
intz;
int main()
{
std::随机_装置rd;
标准:mt19937 gen(rd());
标准:统一国际分布图(1100000);
int a=dis(gen);
printf(“%d”,a);
std::随机_装置rd;
标准:mt19937 gen(rd());
标准:统一国际分布图(1100000);
int b=dis(gen);
printf(“%d”,b);
它会生成“error C2374:'gen':重新定义;多个初始化”错误。如何解决此问题?是否只需使用部分代码来生成两个不同的数字?此外,如果要将第三个变量的1-10000000更改为1-20,我将如何做

std::mt19937 gen(rd());
...
std::mt19937 gen(rd());
不要两次初始化
gen
。只需初始化一次。使用不同的变量-不同的名称,用于不同的事情


另外,不要定义全局变量
a
b
c
x
y
z
。它们完全没有用。尽可能在本地定义每个变量。

不要重复前3行。你已经有了生成器,你只想从中得到下一个数字