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で両方とも calssifiedです。

それらを利用できるようにするには、それらを探す場所をコンパイラーに伝える必要があります。関数宣言または main を開く前に、適宜 or std::mt19937_64 RdmGeneratorObject(seed);giveディレクティブを使用してください。using namespace std;

于 2015-12-12T16:07:50.323 に答える