我在VS2010項目中使用std::variate_generator
以下列方式:的std :: variate_generator在VS2012
#include <random>
...
using std::variate_generator;
using std::mt19937;
using std::uniform_real_distribution;
typedef mt19937 Engine;
typedef uniform_real_distribution<float> Distribution;
typedef variate_generator< Engine, Distribution > Generator;
Generator r(Engine((DWORD)time(NULL)), Distribution(0.0f, 1.0f));
// from now, calling float rnd = r() gave me a random number between 0.0f and 1.0f in rnd.
我現在已經把這個代碼放到一個VS2012的解決方案,我得到的錯誤信息是std::variate_generator
不是std
的成員。
有std::variate_generator
移動或被刪除?
AAH。它已被刪除。嘖。 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1933.pdf – fishfood
一些額外的評論;您不必爲分配指定範圍,因爲零到一是默認值;你可以使用''庫來獲得時間,如果這是你想要初始化引擎的時間,並且如果你使用更高分辨率的時鐘之一,那麼你將能夠以每秒更快的速度初始化不同的引擎;你也可以使用'std :: random_device'來獲得種子;如果你想要一個明確的演員(沉默一個警告,我猜?)'DWORD'可能不是你應該使用的類型。 –
bames53