gpt4 book ai didi

c++ - VS2012 中的 std::variate_generator

转载 作者:搜寻专家 更新时间:2023-10-31 01:12:28 24 4
gpt4 key购买 nike

我在 VS2010 项目中按以下方式使用了 std::variate_generator:

#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 是否移动或被移除?

最佳答案

<random> 的最终标准版本中未使用 variate_generators| . variate_generator 是 tr1 的一部分,但从未成为标准,所以我有点惊讶 std::variate_generator在 VS2010 中工作(而不是 std::tr1::variate_genrator )。我相信它仍然存在于 VS2012 的 tr1 命名空间中。

您可以改为执行以下操作:

#include <random>
#include <functional> // for std::bind
...
using std::mt19937;
using std::uniform_real_distribution;

typedef mt19937 Engine;
typedef uniform_real_distribution<float> Distribution;

auto r = std::bind(Distribution(0.0f, 1.0f), Engine((DWORD)time(NULL)));

// from now, calling float rnd = r() gave me a random number between 0.0f and 1.0f in rnd.

关于c++ - VS2012 中的 std::variate_generator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13691813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com