でも,どっかのblogによると,VS2008のC++0xにはバグがあるとか無いとか...
そんなわけでC++0xで実装予定の,<random>ヘッダを試してみました.
#include <iostream>
#include <random>
#include <ctime>
using namespace std;
using namespace std::tr1; // gnu++0xでは不要.
int main() {
mt19937 e(static_cast<unsigned long>(std::time(0)));
uniform_int<> d(0, 10);
variate_generator<mt19937, uniform_int<> > g(e, d);
for(int i=0;i<10;i++) cout << g() << "\t";
return 0;
}
プログラムの中身としては,0から10までの乱数を発生させます.
実行結果.
まずは,g++
c:\usr\home\cpp>g++ -std=gnu++0x test.cpp
c:\usr\home\cpp>a.exe
0 6 10 0 5 9 9 1 1 8
次いで,VS2008 SP1
C:\usr\home\Projects\HelloVS2008\Debug>HelloVS2008.exe
-4 2 1 3 -3 -4 -3 -1 -2 4
あれ,おかしくね??
0 件のコメント:
コメントを投稿