当我运行我的代码时:
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,我该怎么做?
答案 0 :(得分:1)
std::mt19937 gen(rd());
...
std::mt19937 gen(rd());
不要两次初始化gen
。做一次吧。使用不同的变量 - 不同的名称,用于不同的事物。
此外,不要定义全局变量a
,b
,c
,x
,y
和z
。他们完全没用。尽可能在本地定义每个变量。