1

我正在尝试在我的 C++ 程序中生成随机数。它适用于我运行 Windows 的笔记本电脑。但是,当我尝试在另一台计算机上编译我的程序时,我收到以下错误消息:

error: ‘mt19937_64’ was not declared in this scope
error: expected ‘;’ before ‘randomGenerator’

对应以下代码:

double** Euler::startSimulation(void) {

    mt19937_64 randomGenerator (mySeed);

/* More unshown code below... */

}

我正在使用带有 -std=c++0x 标志的 g++ 从命令行编译我的代码。如何解决此问题,以便我的代码可以在两台计算机上正常编译和运行。

4

1 回答 1

2

mt19937(_64) 都在命名空间 std中进行了分类。

为了使它们可用,您需要告诉编译器在哪里寻找它们。在打开函数声明或 main 之前,相应地使用任一std::mt19937_64 RdmGeneratorObject(seed);ore give指令。using namespace std;

于 2015-12-12T16:07:50.323 回答